为何结构体中的数组不能用const int变量指定大小?

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之后只要修改这个值就能修改数组大小,这也是编写代码时常规的方法,方便大型代码的调试数组

相关文章
相关标签/搜索