C语言数组初始化有没有办法强制所有成员都初始化
比如
在一个头文件里面
#define N 3
在源文件里面
int a[N]={1,2,3};
这时候如果把N改成5,后面的a[N]那部分又忘记加上,a[3]跟a[4]就初始化成0了,
有没有办法在初始化那里加个什么标记,当N跟后面元素的个数不相等的时候强制报个错?
[解决办法]
首先不建议用宏,其次你的初始化的代码并不是general,病根在初始化的方式上,而不应该让编译器帮你做这些杂事
[解决办法]
int a[]={ 1, 2, 3 };
const int N = sizeof( a ) / sizeof( a[ 0 ] );