2011-08-01 13 views
1

私はmain.cで宣言したプリプロセッサ変数を別のプロジェクトのCソースファイルに使用しようとしていますが、main.c:undefined symbol 'mysymbol'からコンパイルエラーが発生します。さて、それが含まれているファイルの外側に#defineの使用に関するルールは何ですか?今#defineされた変数の有効範囲は何ですか?

+3

複数のクラスで使用する必要がある場合は、ヘッダーファイルで定義し、両方のソースファイルにヘッダーファイルを含める必要があります。 –

+1

@Hunter: "class"?彼はC++ではなくCについて質問しています。しかし、C++でも、 "複数のソースファイル"でなければなりません。 –

+0

@Keith、Yea OOPそこにスリップします。 –

答えて

9

、側の#defineの使用をに関するルールが何であるか、それが

A #define含まれる ファイルは、そのファイルの外側に表示されていません。それが定義されているファイルの外側で可視にする唯一の方法は、そのファイルを含めることです。

したがって、main.cとその他のファイルの両方に含まれるヘッダーに挿入する必要があります。

3

#defineをヘッダーに、#includeを参照するすべてのファイルに入れてください。

関連する問題