ヘッダファイルに定義されたグローバル変数のC言語

  通常の状況下では、ヘッダファイルで宣言Cファイルのグローバル変数で定義されている、しかし、我々はCのたくさんのファイルを使用しているように定義するグローバル変数ならば、ヘッダファイルで定義されたグローバル変数は、非常に簡単になりますました最終的にはそれがどのように達成することですか?

os_var.cファイルの内容

1つ の#define OS_GLOBALS
 2の#include "os.h"

os.hファイルの内容

1  の#ifdef OS_GLOBALS
 2  の#define OS_EXT
 3  の#else 
4  の#define OS_EXTのextern
 5  #ENDIF

  os.hは、多くのグローバル変数で定義されているが、彼らはCファイルの多くと呼ばする必要がos.h、そうでない場合は特別な処理は、繰り返しエラーグローバル変数定義がos.hでグローバル変数を定義するために表示されます、 os.h上記のファイルの内容の先頭にos.hマクロ定義が追加され、「OS_EXT」の言葉の前に、グローバル変数、その後、その後、os.hを備え、os_var.c単一のファイルを定義し、唯一この文書のそれが拡大内これは、コンパイル時に、その後、マクロ「OS_GLOBALS」を定義していない、os.hに含まれる他のドキュメントで、os.h内部のみフロントOS_EXTグローバル変数os_var.cをマクロ「OS_GLOBALS」を定義します空、OS_EXTに含まれる他の文書os.hグローバル変数の前にそれは、このように内os.hで定義されたグローバル変数を達成する、というよりも、定義、声明で、externと展開されます。

  os.hグローバル変数の数を定義する一般的なファイルヘッダののuC / OS-III、であり、このヘッダは、グローバル変数の重複定義を防止するために、文書Cの多くと呼ばれる、上記の方法をとっていますすなわち、新しい単一ファイルCのos_var.c、及びC OS_GLOBALSマクロを定義し、この文書において、os.h.を含む、ヘッダ Os_var.cはその後のみコンパイル時に、グローバル変数の内部os.hが定義され、os.h他のCファイルは、我々は、このマクロOS_GLOBALSを定義しないので、他の変数は、Cファイル内で宣言されています。

おすすめ

転載: www.cnblogs.com/SGY1593279715/p/10939367.html