foo是必须初始化的全局整数数组。如果将来我将SIZE更改为6,那么我将不得不将两个新的INIT_VALUE项添加到初始化列表中。当SIZE的值发生变化时,是否有一个宏或其他东西可用于在编译时自动修改初始化列表?
#define SIZE 4
#define INIT_VALUE 101
/* global variable that must be initialized */
int foo[SIZE] = {INIT_VALUE,
INIT_VALUE,
INIT_VALUE,
INIT_VALUE};
答案 0 :(得分:1)
如果此INIT_VALUE
不为0,则无法以您提到的方式初始化数组(以支持未知元素)。我认为甚至没有使用宏来实现它的选项,可能正确的方法就是初始化(在函数中)数组的循环(如果你的值没有,memset
将无济于事看起来像0xYXYXYXYX(所有字节都相同))