char c [2] = {[1] = 7};做?
问题描述:
我在阅读Bruce Dawson's article on porting Chromium to VC 2015,他encountered some C code that I don't understand。char c [2] = {[1] = 7};做?
的代码是:
char c[2] = { [1] = 7 };
布鲁斯它唯一的评论是:“我不熟悉使用数组初始化语法 - 我认为这是一些C-只有构建”那么这个语法究竟是什么意思?
答
C99允许您以任意顺序指定数组的元素(如果您正在搜索它,这看起来称为“指定的初始化程序”)。所以这个构造将7
分配给c
的第二个元素。
该表达式相当于char c[2] = {0, 7};
,它不会为这样一个简短的初始化程序节省空间,但对于较大的稀疏数组非常有用。
有关更多信息,请参见本页面: https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
它等同于'字符C [2] = {0 ,7};'这里指定的初始化器在长数组和结构的情况下非常方便。 –
这是另一种可视化的简单方法。添加到答案中。 –