は、それは罰金コンパイルCの構造と機能の有効範囲の違いは何ですか?
int main(void)
{
typedef struct {
int i;
} s;
struct {
s s;
} t;
return 0;
}
コードのこの部分を考えてみましょう。今、このコードはコンパイルされませんこの1
int main(void)
{
typedef struct {
int i;
} s;
s s;
return 0;
}
を見てみましょう -
‘s’ redeclared as different kind of symbol.
質問:それは正しいことですなぜ「S Sを;」構造体内の宣言として、関数内でこの定義を持つのは間違っていますか?
+1その良い。このことはC標準で言及されると思いますか? –
@ Mr.32はい、それは言及されています。 * "それぞれの構造体または共用体には、そのメンバーのために別の名前のスペースがあります(。または - >演算子を使用して メンバーにアクセスするために使用される式の型によって明確になります)。" * (n1547より) – user694733