2

在浏览一些代码时,我遇到了这种初始化方法:

#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;
}

这个逗号运算符有什么意义?如果删除逗号运算符,我没有发现初始化方法有任何区别。

4

1 回答 1

3

如果您从脚本生成这样的代码,那是有道理的。它使您的脚本保持简单。没有边缘情况。特别是,在再写一个项目之前,您不必担心是否需要添加,第一个;你只需写一个项目后跟一个逗号,你就完成了!

您不关心第一项或最后一项。如果结尾有逗号,则所有项目都相同。

从代码生成的角度思考。这将开始有意义。

请参阅生成此类代码的此 python 脚本:

print ("int a[] = {")
for item in items:
    print (item + ",")
print ("};")

很简单。现在尝试编写不带逗号的代码。不会那么简单。

该标准还允许在枚举定义中使用尾随逗号:

enum A
{
    X,
    Y,
    Z, //last item : comman is okay
};

希望有帮助。

于 2013-08-10T09:25:00.890 回答