关于宏定义ifdef _win32 的问题?
#ifdef _WIN32
#include <windows.h>
#else
#include <dirent.h>
#endif
这段代码的意思是如果定义 _WIN32,则包含windows.h(windows系统)如果没定义_WIN32,则包含dirent.h,这个dirent.h是什么头文件,它是linux下的吗?windows下和linux下C,c++的头文件都不同吗?
还有我没见到文件中定义了_WIN32,即然没定义应该不包含windows.h啊,但是又确实包含了该头文件,因此只能说明已经定义了_WIN32,但在文件中找不到,网上搜索说_WIN32变量是windows系统特有的一个宏,但是怎么才能找到它的定义呢?它到底下哪定义了呢?
还有我把#ifdef _WIN32改成#ifdef WIN32也可以,它们_WIN32和WIN32是同一个变量吗?我用的是devc++,但是我用win-tc编译则发现win-tc没定义WIN32和_WIN32这个变量,这又是怎么回事,不是说它是windows系统特有的一个宏吗?抑或是和编译器有关。有的能识别WIN32有的不能识别WIN32。
#ifdef _WIN32;
#define CURRENT_PLATFORM "WIN32"
#else
#define CURRENT_PLATFORM "Not WIN32"
#endif
printf("CURRENT_PLATFORM = %s\n", CURRENT_PLATFORM);
devc++编译后结果是CURRENT_PLATFORM = WIN32
win-tc编译后结果是CURRENT_PLATFORM = Not WIN32
--------------------
有人说 _Win32 和 WIN32 都可以?有谁能解释一下,到底哪个是正确的