【问题标题】:What is the significance of comma in array and structure initialization? [duplicate]逗号在数组和结构初始化中有什么意义? [复制]
【发布时间】:2013-08-12 04:46:40
【问题描述】:

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

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

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

【问题讨论】:

  • 这个已经被问到了,工具更容易处理或稍后添加(另见枚举)。

标签: c++ c arrays structure


【解决方案1】:

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

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

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

查看这个生成此类代码的 python 脚本:

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

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

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

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

希望对您有所帮助。

【讨论】:

  • 另外,如果您根据配置#ifdef out 一些元素,则在最后一个枚举值处允许逗号非常方便。如果我没记错的话,它在 1999 年标准的 C 语言中是允许的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
相关资源
最近更新 更多