const int status[STATUS_SIZE] = {
[0] = -1,
[1] = 0,
[2] = 1,
};
和
const char *messages[MESSAGE_SIZE] = {
[0] = "OK",
[1] = "NG",
};
你能解释一下吗?
答案 0 :(得分:4)
C99引入Designated Initializers,您可以使用它来初始化数组 以任何顺序使用索引。
标准C90要求初始化程序的元素以固定顺序出现,与正在初始化的数组或结构中的元素顺序相同。
在ISO C99中,您可以按任何顺序给出元素,指定它们适用的数组索引或结构字段名称,GNU C也允许它作为C90模式的扩展。此扩展未在GNU C ++中实现。
要指定数组索引,请在元素值之前写入
[index] =
。例如,int a[6] = { [4] = 29, [2] = 15 };
相当于
int a[6] = { 0, 0, 15, 0, 29, 0 };