Я пытаюсь заставить Visual Studio применять стандарт ANSI C при компиляции проекта, но не могу заставить его работать. Какие-нибудь советы? Я прочитал все руководства, включил параметр /Za и назвал свой файл .c (не .cpp). Однако следующая программа по-прежнему успешно строится:
#include <stdio.h>
void main(void)
{
for (int i = 0; i < 10; i++)
{
}
int f = 0;
}
Но не должно. Это должно быть так, чтобы соблюдать стандарт ANSI C:
#include <stdio.h>
void main(void)
{
int i;
int f = 0;
for (i = 0; i < 10; i++)
{
}
}
Мне нужен эквивалент параметров GCC "-ansi" и "-Wpedantic". Возможно ли это вообще в VS?
void main
) соответствует текущему стандарту ANSI C, который совпадает с текущим стандартом ISO C, обычно называемым C11. VS2015 не поддерживает это. Он поддерживает только один прежний стандарт, C99, которому эта программа также соответствует. Если вы хотите соответствовать какому-то другому прежнему стандарту, такому как C89/90, вам нужно понизить свой набор инструментов до чего-то вроде v100 (VS2010) или использовать другой компилятор. В MSVC нет ничего похожего на флаг-std
. - person n. 1.8e9-where's-my-share m.   schedule 04.02.2017