You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

判断MSVC/Intel编译器的正确宏:VS2022下两宏均定义的疑问

关于Intel C++编译器与_MSC_VER、__INTEL_LLVM_COMPILER宏的疑问解答

为什么两个宏会同时被定义?

Intel基于LLVM的C编译器(即当前的Intel oneAPI DPC/C++ Compiler)默认开启了对MSVC的兼容性适配。为了让原本针对MSVC编写的代码能直接编译通过,编译器会自动定义_MSC_VER这类MSVC专属宏;同时它也会定义自身特有的__INTEL_LLVM_COMPILER宏,用来标识当前使用的是Intel LLVM编译器。这种双重宏定义是兼容性设计的正常结果。

正确判断编译器类型的宏

  • 检测Intel LLVM编译器:优先检查__INTEL_LLVM_COMPILER,这个宏是Intel新一代LLVM架构编译器的专属标识,只要被定义就说明当前编译器是Intel LLVM版本。
  • 检测MSVC原生编译器:先排除Intel LLVM的情况(即__INTEL_LLVM_COMPILER未定义),再检查_MSC_VER,它是MSVC原生编译器的版本标识宏。
  • 针对旧版Intel Classic Compiler:可以检查__INTEL_COMPILER,不过这个宏在新一代LLVM编译器中不会被定义,仅适用于传统的Intel编译器版本。

内容的提问来源于stack exchange,提问作者ijklr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:14:51