2

C 標準では、スコープが同じポイントで終了する場合にのみ、2 つの識別子が同じスコープを持つと定義しています。そして、さらに次のように述べています。

構造体、共用体、および列挙タグには、タグを宣言する型指定子でタグが出現した直後から始まるスコープがあります。各列挙定数には、列挙子リスト内の定義列挙子の出現直後から始まるスコープがあります。その他の識別子には、その宣言子の完了直後から始まるスコープがあります。

スコープの先頭が一致しなくても、2 つの識別子が同じスコープを持つように正式に呼び出されるということですか?

4

2 に答える 2

5

はい、それはそれについて考える合理的な方法です。そうしないと、2 つの識別子が同じスコープを持つことはありません。

{
    int a;
    int b;
}

上記では、 と のスコープは異なるポイントaからb始まりますが、確かにそれらは同じスコープ内にあると考えたいのです!

于 2012-10-23T15:57:58.700 に答える