2017-02-16 5 views
0

のための唯一の型宣言私は、ANSI Cで構造体のような定義渡って実行しました:構造体の構文と複数のフィールド

struct My_data { 
    int a, 
    b, 
    c, 
    d; 
}; 

と構造体は完全にこの一方向関数を作成しました。私の質問は、これがANSI Cの法的構文であるかどうかです.K &でそのような情報が見つかりませんでした。R

+0

はい、合法です。 –

+0

C11標準§6.7.2.1「構造体および共用体指定子」は、代替の1つが_struct-declarator-list: 構造体宣言子リスト '、' struct-declarator_であるルールを持っています。 '_struct-declarator_のための一つの可能​​性です。 –

答えて

5

はい、合法です。

それはと同等です:C11 draft, 6.7.2.1に構造体の文法を参照してください(ともC11, 6.7.6, declaratrorsのもの、具体的にあなたの質問に

struct My_data { 
    int a, b, c, d; 
}; 

または

struct My_data { 
    int a; 
    int b; 
    int c; 
    int d; 
}; 

あるいは

struct My_data { 
    int arr[4]; /* An array of 4 ints. This isn't strictly equivalent - but functionally equivalent */ 
}; 

)。

+0

マニュアルの小文字の「opt」は「オプション」を意味しますか? – Yos

+1

[はい、正しいです](http://port70.net/~nsz/c/c11/n1570.html#6.1p1)。 – usr