这是gcc和clang
支持的扩展。gcc文件说:
作为扩展,GCC在C90模式和C ++中支持复合文字,尽管C ++中的语义有些不同。
如果使用-pedantic进行构建,则应收到警告,例如clang
说(实时查看):
警告:复合文字是C99特定的功能[-Wc99-extensions]
请注意,C ++中的语义差异不是很小,并且在C99中具有良好定义的代码在具有以下扩展名的C ++中可能具有未定义的行为:
在C ++中,复合文字指定了一个临时对象,该对象仅生存到其完整表达式的结尾。结果,定义良好的C语言代码(使用复合文字的子对象的地址)可能无法在C ++中定义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句