2011-08-01 90 views
1

我試圖用我的main.c在同一項目中的另一個Ç源文件中聲明的預處理器變量,但我得到一個編譯時錯誤,包括從main.c中:未定義的符號「mysymbol」。現在,什麼是關於包含它的使用#define出方的文件的規則?什麼是#的範圍define'd變量?

+3

如果你需要在多個類使用它,你應該在頭文件中定義的,則包括用在源文件中的頭文件。 –

+1

@Hunter:「class」?他問的是C,而不是C++。但即使在C++中,它也應該是「不止一個源文件」。 –

+0

@Keith,是啊OOP滑那裏。 –

回答

9

現在,有什麼關於使用#define出方的 文件中包含它

一個#define不是它的文件外可見的規則。使其在定義文件外部可見的唯一方法是包含該文件。

所以看起來你應該把它放在雙方main.c和其他文件包含的頭。

3

您需要將#define放在標題中,並且#include將其放在要引用它的所有文件中。