码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-07-28 19:07:08      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

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

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

标签:

原文地址:http://my.oschina.net/u/818523/blog/484772

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!