2013-04-29 3 views

答えて

1

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

8

マクロにexternを使用することはできません。しかし、あなたはあなたのマクロは、多くのCファイル

で見たい場合は、あなたの中にあなたのdef.hが含まdef.h

のようなヘッダファイル内

#define NAME "supreeth" 

あなたのマクロ定義を置きますCコードを使用し、他のすべてのCファイルでマクロを使用できます。def.h

+0

可能なのは?変数はなく、 'extern'の概念は適用されません。 –

+0

私はexternを使用していたわけではありません。ヘッダファイルにマクロを定義してから、Cファイルからそのマクロを見ることができます。私はより具体的にする必要があります私は私の答えを更新する – MOHAMED

14

コードNAMEは変数ではありません。これはプリプロセッサシンボルです。つまり、NAMEのテキストは、入力のどこでも文字列"supreeth"に置き換えられます。これはファイルごとに起こるので、それが「外部」であると話すのは理にかなっていません。

#defineを指定せずに特定のCファイルをコンパイルすると、NAMEの使用はそのままの状態になります。

関連する問題