这是语法-[x]=‘;y’;在数组文字中-标准C?

这是语法-[x]=‘;y’;在数组文字中-标准C?,c,syntax,C,Syntax,我在回答C问题时看到过类似的情况。这是类似于Lua的语法标准C,还是某种编译器扩展?是的,该语法是自C99(1999年ISO C标准)以来的标准语法 这在C标准中有描述: (链接指向N1570草案的HTML版本,该版本与2011年出版的版本非常接近。) 指定的初始值设定项也可以用于结构和联合成员,语法为.name=value,而不是[index]=value 指定的初始值设定项也可以用于复合文字:我相信这是C99标准中引入的指定初始值设定项。详细信息:C定义了stirng文字和复合文字,但不是数

我在回答C问题时看到过类似的情况。这是类似于Lua的语法标准C,还是某种编译器扩展?

是的,该语法是自C99(1999年ISO C标准)以来的标准语法

这在C标准中有描述:

(链接指向N1570草案的HTML版本,该版本与2011年出版的版本非常接近。)

指定的初始值设定项也可以用于结构和联合成员,语法为
.name=value
,而不是
[index]=value


指定的初始值设定项也可以用于复合文字:

我相信这是C99标准中引入的指定初始值设定项。详细信息:C定义了stirng文字和复合文字,但不是数组文字。
const char Table[256] = {
     ['a'] = 'a', ['A'] = 'a',
     ['b'] = 'b', ['B'] = 'b',
     ['c'] = 'c', ['C'] = 'c',
     ['d'] = 'd', ['D'] = 'd',
     ['e'] = 'e', ['E'] = 'e',
     ['f'] = 'f', ['f'] = 'f',
     ['g'] = 'g', ['g'] = 'g',
     ['h'] = 'h', ['H'] = 'h',
     ['i'] = 'i', ['I'] = 'i',
     ['j'] = 'j', ['J'] = 'j',
     /* Etc */
};