#include <stdio.h> #define SIZE 5 int main(void) { int array[SIZE] = {1,2,3,4,5}; for(int i = 0;i < SIZE;++i) printf("%d\n",array[i]); }
以上代码为什么编译不通过,FOR头内定义的i,在循环体内不能被访问到吗?非得在外头再声明一遍 i 吗?
解决方案
4
c++都没问题。假如是c语言,应该是c99才有的吧。
本人用gcc,默认不支持,要加个选项-std=c99
VS2012的命令行cl.exe,也不支持,不知道有没有办法可以支持的。
题主看看你的编译器有没有设置支持c99
本人用gcc,默认不支持,要加个选项-std=c99
VS2012的命令行cl.exe,也不支持,不知道有没有办法可以支持的。
题主看看你的编译器有没有设置支持c99
3
你这有的trubo c 还是vc6.0啊,赶快下个vs最新版的开发工具
3
-std=c99,以前版本不支持
3
CL并不是很好的支持标准C哦,题主可以把后缀改成CPP再编译,或使用GCC开启C99支持编译
4
C语言的写法一般都是把int i;写在for前面的
5
#include <stdio.h> int main(void) { for(int i=0;i<5;i++) printf("Gee!"); return 0; }
用gcc(Mingw)编译这个代码,首次报错(如图),提示加”-std c99″,之后成功(如图),可见只有C99支持这个操作。