细说 Visual Studio 预处理器宏

        

        Visual Studio C/C++ 项目中的默认的 Release 和 Debug 版本预处理宏可以包括一些通用的宏定义,其中一些可能取决于项目的设置和目标平台,除此之外还可以根据需要创建自定义版本:

图-1 某 VS C/C++ 项目的 Debug 版本预处理宏定义

    WIN32这是 Windows 平台的标准宏,指示代码正在 Windows 操作系统上编译。如果没有定义 WIN32 宏,你的代码中的条件编译指令(例如 #ifdef WIN32#ifndef WIN32)将不会按预期工作。但实际支持跨平台编译的 C++ 程序大多数时候用的都是 _Win32 这个宏,如以下代码所示:

#ifdef _WIN32
                std::invoke(func, lockedCallback, args...);
#else
                std::__invoke(func, lockedCallback, args...);
#endif

        这两个宏的作用相似,但通常情况下,_WIN32 更为常见,因为它是 Microsoft 编译器和许多 Windows 相关的头文件中使用的约定。_WIN32 宏通常是由编译器预定义的,特别是在 Windows 环境中。编译器会在编译 Windows 应用程序时自动为你定义这个宏。这意味着你无需手动定义 _WIN32,它会根据你选择的目标平台自动出现。

        通常,当你使用 Microsoft Visual C++ 编译器(如 Visual Studio)来构建 Windows 应用程序时,_WIN32 宏将自动定义,因为这个编译器主要用于 Windows 平台的开发。_WIN32 宏主要用于区分 Windows 和非 Windows 平台的代码。在 Windows 上编译的 x64 应用程序仍然可以使用 _WIN32 宏来区分 Windows 平台和其他平台。所以可能是先入为主的历史

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值