数组的大小,编译时常量?该如何解决
数组的大小,编译时常量?
可是为啥...
int size;
cin > > size;
int a[size];
...
gcc 3.4.2编译通过,难道是我土了?
------解决方案--------------------
用其他编译器也试一下,应该不行的
一般说来,最好要使用两个以上的编译器做测试,以免被唯一的编译器的特性所迷惑。
------解决方案--------------------
要支持 C99
------解决方案--------------------
关于这个问题,在gcc的官方网站上有介绍,是有这个提法。
------解决方案--------------------
Dev-C++ 4.9.2.2中的gcc是3.4.2的,如果在设置编译参数 --std c99,那么变长数组VLA,例如int a[b]; // b 是个整型变量,且> 0
是支持的。
对于不支持c99的编译器将会报错。
我试过VC++.net 2005,测试c代码,结果连
int a = 0;
printf( "sdff ");
int b = 0; //错误,应该在前面集中定义
...
震惊了,难道,VC++.net 2005还不支持c99标准,还是我的那里设置有问题。
所以,我就转向使用Dev-C++ 4.9.2.2了。这个编译器学习不错。
可是为啥...
int size;
cin > > size;
int a[size];
...
gcc 3.4.2编译通过,难道是我土了?
------解决方案--------------------
用其他编译器也试一下,应该不行的
一般说来,最好要使用两个以上的编译器做测试,以免被唯一的编译器的特性所迷惑。
------解决方案--------------------
要支持 C99
------解决方案--------------------
关于这个问题,在gcc的官方网站上有介绍,是有这个提法。
------解决方案--------------------
Dev-C++ 4.9.2.2中的gcc是3.4.2的,如果在设置编译参数 --std c99,那么变长数组VLA,例如int a[b]; // b 是个整型变量,且> 0
是支持的。
对于不支持c99的编译器将会报错。
我试过VC++.net 2005,测试c代码,结果连
int a = 0;
printf( "sdff ");
int b = 0; //错误,应该在前面集中定义
...
震惊了,难道,VC++.net 2005还不支持c99标准,还是我的那里设置有问题。
所以,我就转向使用Dev-C++ 4.9.2.2了。这个编译器学习不错。