Ответ 1
Да, это возможно. MSDN предоставляет некоторую информацию здесь: Соответствие ANSI C.
Шаг первый устанавливает компилятор для создания кода C, а не кода на С++. Сделайте это из своего проекта Properties. Разверните заголовок C/С++ и нажмите "Дополнительно". Установите для свойства "Compile As" значение "Compile as C Code" (это то же самое, что указано в /TC
switch в командной строке), Еще проще просто указать ваши файлы с расширением *.c
.
Шаг второй отключает расширения Microsoft по стандартам ANSI. Они регулируются переключателями /Za
и /Ze
. Их также можно найти в свойствах проекта. /Za
заставляет компилятор испускать ошибку для языковых конструкций, которые не соответствуют стандарту ANSI. Переключатель /Ze
включает расширения для Microsoft; вы хотите убедиться, что этот отключен.
Хотя я не считаю, что Microsoft полностью поддерживает стандарт C99. См. (И голосуйте за!) этот отчет об ошибке в MS Connect, этот блог запись из команды VС++ и эта страница для конкретного примера того, где эта нехватка поддержки становится очевидной. Тем не менее, он имеет полную поддержку стандарта C90.