#ifdef _WIN32

场景:ifdef win32深究解决方法

ifdef win32深究
对于ifdef   win32这句话是告诉编译器如果是win32系统就怎么样?那么编译器如何知道系统是win32系统还是Unix系统?是Solaris还是AIX等?对所有的编译器,他判断操作系统后的名字是否相同?如果不一样,那岂不是不能编写跨平台的程序了?

------解决方案--------------------
编译器在安装的时候写配置文件什么的,或者调用操作系统API,或者在project里加参数。。。,它有很多方法可以知道当前系统是什么系统。
------解决方案--------------------
这个 通常在编译的时候 增加这个宏定义的
比如gcc -DWIN32什么的
------解决方案--------------------
在WIN32在运行的gcc, 很自然知道自己运行在WIN32上, 因为gcc自己被编译的时候已经定义WIN32。

#ifdef WIN32
#define CURRENT_PLATFORM "WIN32 "
#else
#define CURRENT_PLATFORM "NON_WIN32 "
#endif

#include <stdio.h>

int main(void)
{
(void) printf( "CURRENT_PLATFORM = %s\n ", CURRENT_PLATFORM);

return 0;
}