#define L 1
#define M L+1
int main(void){
int N=L*M*2;
char s [N]={'1','2'};
printf("%d", sizeof(s));
return 1;
}
为什么上面的代码无法编译?Eclipse 的编译器说了两件事:
- 可变大小的对象可能无法初始化:是因为在宏中定义了 N 与 M 和 L 还是因为我无法初始化类型为arr[x] 的数组,其中 x 在任何情况下都是可变的?
- 数组初始值设定项中的多余元素- 这是什么意思?