私はコンピューターを使用していないため、現時点ではこれをテストできませんが、レビューするコードがいくつかあります。残念ながら、私はまだC++のマインドフレームにいます。
では、typedef が C ソース ファイル内で宣言されている場合、そのスコープは何ですか? 関数と変数を同じ翻訳単位内でのみ使用できるようにするには、それらを静的にする必要があることを認識していますが、これは typedef でも同じでしょうか?
私はコンピューターを使用していないため、現時点ではこれをテストできませんが、レビューするコードがいくつかあります。残念ながら、私はまだC++のマインドフレームにいます。
では、typedef が C ソース ファイル内で宣言されている場合、そのスコープは何ですか? 関数と変数を同じ翻訳単位内でのみ使用できるようにするには、それらを静的にする必要があることを認識していますが、これは typedef でも同じでしょうか?
Typedef は宣言です。Cファイルにtypedefがある場合、他のCファイルは互いに独立してコンパイルされるため、他のCファイルはそれを認識しません。
ヘッダーの typedef の場合、もちろん、それを含むすべての C ファイルから表示されます。
typedef
C/C++ の通常の変数と同じスコープを持つ
この複雑な文の意味はわかりませんが、C標準がtypedefのスコープを定義する方法は次のとおりです。
特殊なケースとして、タイプ名(識別子の宣言ではない)は、省略されていない場合に省略された識別子が表示されるタイプ名内の場所の直後から始まるスコープを持つと見なされます。
PS誰か説明してください。