【问题标题】:Accessing #defined variables from static methods in C++从 C++ 中的静态方法访问#defined 变量
【发布时间】:2013-04-20 02:15:27
【问题描述】:

我有带有代码的头文件A,

#define varA 1

还有一个头文件 B,我在其中包含了头文件。我在头文件B中有以下静态方法,

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

我收到 varA 未定义的错误。但是,如果我将#define varA 1 移动到头文件 B,它就可以正常工作。为什么我不能在我的静态方法中使用来自另一个文件的 #define 变量?

【问题讨论】:

  • 您可以在其他文件中声明#define,实际上最好使用一个头文件来集中所有常规使用定义。你在其他地方定义了 varA 吗?顺便说一句:编码标准是定义大写字母的所有字母,如下所示:VAR_A

标签: c++ methods static header c-preprocessor


【解决方案1】:

#define 是一个预处理器结构。
它只适用于当前文件。

相反,您可以创建一个 C++ const

【讨论】:

  • 好的,解决了。但是我很困惑,只要包含标题,我就可以在任何其他文件中使用我的#define 变量。它仅在它变得不可用的静态函数中。
猜你喜欢
  • 2015-02-18
  • 2015-07-22
  • 2012-06-29
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
  • 1970-01-01
  • 2017-01-13
  • 2011-05-30
相关资源
最近更新 更多