#ifndef _WIN32表示什么?

时间:2012-07-13 08:45:02

标签: c linux

  

可能重复:
  the role of #ifdef and #ifndef

#ifndef _WIN32 

指示cpp省略32位Windows平台的代码?

3 个答案:

答案 0 :(得分:4)

#ifndef _WIN32告诉预处理器在其下方包含代码,直到相应的#endif,如果_WIN32未定义。

#ifndef _WIN32
#define STR1 "Some String"
#endif

如果未定义_WIN32,则将包含宏STR1,如果定义了_WIN32,则不会包括宏STR1。请注意_WIN32是系统定义的宏。通常,不适用于Windows平台或通用且无法在Windows中编译的代码放在#ifndef _WIN32宏下。

MSDN page表示默认情况下会为所有32位和64位版本定义_WIN32。

答案 1 :(得分:0)

此指令表示“_WIN32宏定义时不包含此代码”。 如果仅在编译Win32时定义宏_WIN32,则此代码“指示cpp省略32位Windows平台的代码”。

答案 2 :(得分:0)

这是一个预处理器指令。它被称为编译常量。

如果未定义编译常量(例如,_WIN32),编译器将考虑#ifndef下的代码段。

我相信上述说明可以帮助您解决查询问题。

更具体地说,

#ifndef _WIN32

...
...
...
some code
...
...
...

#endif

如果您还没有定义_WIN32(例如#define _WIN32),那么#if ...#endif中的代码将被编译。

希望它有所帮助。