在Visual Studio 2010 #ifdefine下,WINDOWS语句不会被编译

时间:2014-03-06 13:34:19

标签: c windows visual-studio-2010

我在visual studio 2010的dll项目中编写了一个小条件语句,如下所示。

#ifndef WINDOWS
int a=10;
#endif

从上面的条件statemnt中,对于Windows操作系统,不应该包含此语句(int a = 10)。但是在编译时也包含此语句(int a=10)。

我无法找到问题。

2 个答案:

答案 0 :(得分:1)

由于未在任何地方定义WINDOWS,因此将包含该变量。没有这样的预定义宏。

尝试#ifndef _WIN32#ifndef __WIN32

答案 1 :(得分:1)

识别操作系统的宏由相关编译器定义。

引自64-Bit Compiler

预定义宏

编译器定义以下宏来标识平台。

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.