这个编译错误指没有用常量来初始化变量,比如:
- const int LENGTH = 10;
- int a[LENGTH];
复杂些的,比如:
- typedef struct{
- int i;
- int j;
- }sType;
- const sType A = {1,2};
- const sType B = {3,4};
- sType c[2] = {A, B};
究其原因,C语言中的"const"并不表示常量,更确切的意思是“read only".
C99标准 6.7.8 Initialization 第4款:
All the expressions in an initializer for an object that has static storage duration shall be
constant expressions or string literals.
同样的代码,可通过c++编译器,可见C++中“const”的意思名副其实。
阅读(890) | 评论(0) | 转发(0) |