2013-04-26 38 views
0

我已經頭文件中的代碼的變量,訪問#define的從在C++中的靜態方法

#define varA 1 

並且其中我已經包括在頭文件的報頭文件B。我在頭文件B以下的靜態方法,

static void MakeBFromA(){ 
int varB = varA; 
} 

我得到一個錯誤,varA是不確定的。但如果我將#define varA 1移動到頭文件B中,它工作正常。爲什麼我的靜態方法中不能使用另一個文件中的#define變量?

+0

您可以在其他文件中聲明#define,實際上最好是讓一個頭文件集中所有常規使用定義。你有VARA定義其他地方?順便說一句:一個編碼標準是所有的字母定義如下:VAR_A – 2013-04-26 01:55:25

回答

1

#define預處理器構造。
它只適用於當前文件。

取而代之,您可以製作C++ const

+0

沒問題,解決了它。但是我很困惑,只要包含頭文件,我就可以在任何其他文件中使用我的#define變量。它只在靜態函數中變得不可用。 – hOOks7 2013-04-26 06:10:01

相關問題