uint8_t, uint16_t
タイプを定義する従来の埋め込み C コードと、キーワード uint32_t
を使用してヘッダー ファイルで作業しています。typedef
typedefs.h
議論のために、ファイルにこれらの定義が含まれているとしましょう。
私の新しい C ソース モジュールには、stdint.h
. typedefs.h
また、階層内のどこかに含まれる他のヘッダー ファイルも含めます。予想どおり、コンパイラは複数の定義されたシンボルについて不平を言います。
タイプが定義されていない場合は、どちらかが含まれていないか、より良い場合にのみタイプtypedefs.h
を宣言するように、レガシーファイルを変更したいと思います。uint*_t
stdint.h
uint*_t
私の理解では、プリプロセッサ ディレクティブではない#ifndef
ため使用できません。typedef
uint*_t
では、それらが既に存在する場合 (またはstdint.h
既に含まれている場合)を定義しないようにコンパイラに指示するにはどうすればよいでしょうか?
注: C 仕様で定義された標準にヘッダー ファイルのガード定義が含まれている場合、これは簡単です。
FWIW、私は ARM9 プロセッサに Green Hills コンパイラ 4.24 を使用しています。