我在visual studio 2010的dll项目中编写了一个小条件语句,如下所示。
#ifndef WINDOWS
int a=10;
#endif
从上面的条件statemnt中,对于Windows操作系统,不应该包含此语句(int a = 10)。但是在编译时也包含此语句(int a=10
)。
我无法找到问题。
答案 0 :(得分:1)
由于未在任何地方定义WINDOWS,因此将包含该变量。没有这样的预定义宏。
尝试#ifndef _WIN32
或#ifndef __WIN32
。
答案 1 :(得分:1)
识别操作系统的宏由相关编译器定义。
编译器定义以下宏来标识平台。
Macro Meaning
_WIN64 A 64-bit platform.
_WIN32 A 32-bit platform. This value is also defined by the 64-bit compiler for backward compatibility.
_WIN16 A 16-bit platform.
以下宏特定于架构。
Macro Meaning
_M_IA64 A 64-bit Intel platform.
_M_IX86 A 32-bit Intel platform.