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

スクリプトからそのようなコードを生成するのは理にかなっています。スクリプトをシンプルに保ちます。エッジケースはありません。,特に、もう 1 つの項目を書き込む前に、最初の項目を追加する必要があるかどうかを気にする必要はありません。1 つの項目の後にカンマを書くだけで完了です。

最初の項目や最後の項目は気にしません。末尾のコンマがある場合、すべての項目が同じです。

コード生成の観点から考えてみましょう。それは理にかなっています。

このようなコードを生成するこの 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 に答える