#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支持这个操作。