关于宏定义ifdef _win32 的问题?

coloriy 2010-02-03 09:29:42
#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 都可以?有谁能解释一下,到底哪个是正确的
...全文
3223 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
coloriy 2010-03-09
  • 打赏
  • 举报
回复
后来发现其实都一样,是windows不同版本定义的宏,
hjd2357 2010-02-03
  • 打赏
  • 举报
回复
#if defined(_WINDOWS) || defined(WIN32)
zhou1xp 2010-02-03
  • 打赏
  • 举报
回复
到底有没有win32,要看你的工程的设置,一般在设置的c/c++的最后一个里面
不动如岳 2010-02-03
  • 打赏
  • 举报
回复
工程文件中有可能有定义的。根据你的工程类型不同,会定义很多不同的宏。
jingzhongrong 2010-02-03
  • 打赏
  • 举报
回复
在代码和工程属性中都可以添加宏的设置,不同编译器的默认设置可能不同。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧