在浏览一些代码时,我遇到了这种初始化方法:
#include<stdio.h>
struct trial{
int x, y;
};
int main(){
int a[10] = {0,1, };//comma here
struct trial z = {1, };//comma here
return 0;
}
这个逗号运算符有什么意义?如果删除逗号运算符,我没有发现初始化方法有任何区别。
如果您从脚本生成这样的代码,那是有道理的。它使您的脚本保持简单。没有边缘情况。特别是,在再写一个项目之前,您不必担心是否需要添加,
第一个;你只需写一个项目后跟一个逗号,你就完成了!
您不关心第一项或最后一项。如果结尾有逗号,则所有项目都相同。
从代码生成的角度思考。这将开始有意义。
请参阅生成此类代码的此 python 脚本:
print ("int a[] = {")
for item in items:
print (item + ",")
print ("};")
很简单。现在尝试编写不带逗号的代码。不会那么简单。
该标准还允许在枚举定义中使用尾随逗号:
enum A
{
X,
Y,
Z, //last item : comman is okay
};
希望有帮助。