2012-04-25 16 views
8

私はコンピュータではないので、現時点でこれをテストすることはできませんが、レビューするコードはありません。私はまだまだC++マインドフレームの不幸な人です。typedefの範囲

したがって、Cソースファイル内でtypedefが宣言されているとき、そのスコープは何ですか?関数と変数を同じ翻訳単位内でのみ使用できるようにするには、それらを静的にする必要があることを認識しています。これがtypedefの場合と同じかどうか疑問に思っていましたか?

答えて

22

型定義は、宣言されています。 Cファイルにtypedefがある場合、他のCファイルは、互いに独立してコンパイルされているので、それを認識しません。

ヘッダーのtypedefについては、もちろんそれを含むすべてのCファイルから見ることができます。

+0

ありがとうございます。 – Firedragon

5

typedefがCで通常の変数と同じ範囲を有している/ C++

1

私はいただきました!この複雑な文の意味を知らないが、これはCの標準はのtypedefの範囲を定義する方法である:(識別子の宣言ではない)特殊な場合、タイプ名として

を には、省略された という識別子が省略された型名内の場所の直後から始まるスコープが含まれていると見なされます。

P.S.誰か説明してください。