15

たとえば、abc.cには変数が含まれています

#define NAME "supreeth"

def.cの変数NAMEをextern できますか?

4

3 に答える 3

21

externマクロでは使用できません。しかし、マクロを多くの C ファイルから見たい場合は

マクロ定義を入れます

#define NAME "supreeth"

def.hのようなヘッダー ファイルで

次に、C コードに def.h をインクルードします。def.hインクルードすると、他のすべての C ファイルの C ファイルでマクロを使用できます。

于 2013-04-29T13:35:09.670 に答える
16

あなたのコードNAMEでは変数ではありません。これはプリプロセッサ シンボルです。つまり、テキストNAMEは入力のあらゆる場所で string に置き換えられます"supreeth"。これはファイルごとに発生するため、「外部」であると言うのは意味がありません。

特定の C ファイルがそれなしでコンパイルされた場合、#defineの使用NAMEはそのまま残ります。

于 2013-04-29T13:40:36.947 に答える
3

#define NAME "supreeth"abc.cにある場合、別のファイルに同じ名前のextern変数を確実に持つことができます。def.cこれは、コンパイラに関する限りです。これら2つの間の何らかの依存関係を暗示している場合、その依存関係/リンクは発生しません。明らかに、このようなことを行うのは混乱を招き、悪い考えです。

于 2013-04-29T13:53:32.857 に答える