标签:
typedef struct { int semId; int counter; char str[MAX_STRING]; }MY_BLOCK_T; int main() { MY_BLOCK_T mybt; //编译时这里报错 ?? char str2[MAX_STRING]; //这里没有错 !! return 0; }
编译器不同,编译的结果也是不同的,标准C不支持变量声明声明数组大小,但是有些融合了C++的支持变量申明,但是C++也不推荐这么写,数组大小应该是一个常数,如果不确定数组大小最好还是用Vector之类的容器,把数组改成 char str[8192],或者是在开头设置成宏定义#define MAX_STRING 8192以后只要修改这个值就能修改数组大小,这也是编写代码时常规的方法,方便大型代码的调试
标签:
原文地址:http://my.oschina.net/u/818523/blog/484772