我有一个这样的枚举:
enum {
ID_FOO = 0,
ID_BAR,
ID_BAZ
}
以及使用指定初始化器(如 hat)的常量数组:
char* arr[] = {
[ID_FOO] = "foo stuff",
[ID_BAR] = "bar stuff",
[ID_BAZ] = "baz stuff",
0
}
现在,当我向枚举添加一个值时,例如在ID_FOO
但忘记将其添加到数组之后,我会得到一个未初始化数组中的空初始化“洞”。有什么办法可以防止这种情况发生,或者至少从编译器那里得到警告?
非便携式 GCC-only 解决方案很好。