Да, это возможно. MSDN предоставляет некоторую информацию здесь: Соответствие ANSI C .
Шаг первый - настройка компилятора для генерации кода на C, а не на C ++. Сделайте это из свойств вашего проекта. Разверните заголовок C / C ++ и нажмите «Дополнительно». Установите для свойства «Скомпилировать как» значение «Скомпилировать как код C» (это то же самое, что указать переключатель /TC
в командной строке). Еще проще просто назвать ваши файлы с расширением *.c
.
Шаг второй - отключение расширений Microsoft к стандартам ANSI. Они управляются переключателями компилятора /Za
и /Ze
. Вы также можете найти их в свойствах вашего проекта. /Za
заставляет компилятор выдавать ошибку для языковых конструкций, которые не соответствуют стандарту ANSI. Переключатель /Ze
включает специфичные для Microsoft расширения; Вы хотите убедиться, что этот выключен .
Хотя я не верю, что Microsoft полностью поддерживает стандарт C99. Смотрите (и голосуйте за!) этот отчет об ошибках в MS Connect , эту запись в блоге от команды VC ++ и эту страницу для конкретного примера того, где это отсутствие поддержки становится очевидным. Однако он полностью поддерживает стандарт C90.