【发布时间】:2015-03-12 12:04:37
【问题描述】:
此代码为 Visual Studio 2012 和 2008 输出 T2、T4,为 gcc 输出 T1、T2、T3、T4。 是什么原因?
#include <iostream>
#define ABC
#define T1 defined(ABC)
#define T2 defined( ABC )
#define T3 defined(ABC )
#define T4 defined( ABC)
int main(int argc, char* argv[])
{
#if T1
std::cout<<"T1"<<std::endl;
#endif
#if T2
std::cout<<"T2"<<std::endl;
#endif
#if T3
std::cout<<"T3"<<std::endl;
#endif
#if T4
std::cout<<"T4"<<std::endl;
#endif
return 0;
}
【问题讨论】:
-
您为什么不能使用实时预览来检查您的帖子是否正常?
-
没有找到如何逃避尖锐符号。
-
使用 keep pre-processed 选项运行两个编译器并查看它们的输出
-
嗯,在 vs2013 中我只得到 T2
标签: c++ visual-studio visual-studio-2012 defined