1. 变长数组
在Windows下用VS2008编译如下程序:
int main(int argc, char ** argv){
int length = 10;
int a[length];
return 0;
}
出现了如下错误:
error C2057: 应输入常量表达式
error C2466: 不能分配常量大小为 0 的数组
error C2133: “a”: 未知的大小
原因是C89规定数组定义时长度必须是常量
在Windows下使用VS2008编译C程序时,遇到变长数组错误,由于VS2008不支持C99,导致编译失败。而Linux下的GCC编译器支持C99,因此可以成功编译。同时,C++环境允许const定义常量,但C语言中const定义的是只读变量,常量应使用#define宏定义。
在Windows下用VS2008编译如下程序:
int main(int argc, char ** argv){
int length = 10;
int a[length];
return 0;
}
出现了如下错误:
error C2057: 应输入常量表达式
error C2466: 不能分配常量大小为 0 的数组
error C2133: “a”: 未知的大小
原因是C89规定数组定义时长度必须是常量

被折叠的 条评论
为什么被折叠?