C: printf放在int定义之前引发visual studio编译失败 error C2143
用printf放在int定义之前引发visual studio编译失败;
出现错误: error C2143: 语法错误 : 缺少“;”(在“类型”的前面)?
查了很久没弄明白;后来发现定义全部要放最前面。
-----------------------------------------------------------
详细说明
标准C99的要求。
最标准的C语言要求所有的局部变量定义必须放在函数的最开始,局部变量定义完成之后,才可以写一些有实际意义的操作语句。
只是后续C++在扩展的时候,将这个限制取消了。后续的一些C语言编译器也没有严格执行这个要求,所以同一段代码有的编译器可以执行,有的就不可以。
但是为了扩展性,推荐写的C语言代码还是遵从C99的标准吧。
例如:这是符合标准C99,任何编译器都可以执行
|
1
2
3
4
|
int a;int c;printf("%d\n",a);c=a; |
更改一下顺序,这段代码标准C99编译器是编译不通过的,但是C++的编译器就允许
|
1
2
3
4
|
int a;printf("%d\n",a);int c;c=a; |
本文版权归作者所有,谢绝转发,违者必究。
本文版权归作者所有,谢绝转载,违者必究!
浙公网安备 33010602011771号