我正在阅读Bruce Dawson's article on porting Chromium to VC 2015,而他encountered some C code that I don't understand。
代码是:
char c[2] = { [1] = 7 };
Bruce对它的唯一评论是:“我不熟悉所使用的数组初始化语法 - 我认为它是一些只有C的构造。”那么这个语法究竟意味着什么?
答案 0 :(得分:12)
C99允许您以任何顺序指定数组的元素(这似乎被称为"指定的初始化器"如果您正在搜索它)。因此,此构造将7
分配给c
的第二个元素。
这个表达式相当于char c[2] = {0, 7};
,它不会为这么短的初始化器节省空间,但对更大的稀疏数组非常有帮助。
有关详细信息,请参阅此页面: https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
答案 1 :(得分:2)
它的意思是
char c[2]={ 0, 7 }
或者你可以说
char c[2];
c[0]=0;
c[1]=7;