正如你可以在下面的代码中看到的,我介绍了一个嵌套函数内main()
:如何禁用GNU C扩展?
#include <stdio.h>
int main(){
int a=5;
printf("%d\n",a);
{
int a=10;
printf("%d\n",a);
}
printf("%d\n",a);
//Nested function
int main(int a){
if(a>0)printf("%d\n",a--);
return 0;
}
main(7);
return 0;
}
至于我能理解我用-std=c99
标志GCC为“禁用”的不必要的扩展,但我没有得到任何错误。
gcc temp3.c -std=c99 -o temp3.out
哪里有我犯的错?
添加'-pedantic -Werror'应该可以解决这个问题。 –
那么-std = c99标志有什么用? –
'-std = c99'标志禁用GCC认为应该禁用的GNU扩展 - 例如POSIX版本等。请参阅[C语言选项](https://gcc.gnu.org/onlinedocs/gcc/C- Dialect-Options.html#C-Dialect-Options)来表示'-std ='的含义;有关'-pedantic'的含义,请参阅[警告选项](https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options)。 –