c – MSVC未正确评估定义(VARIABLE)?
运行以下代码
#include <iostream> #define FOO #define BAR defined(FOO) int main() { #if BAR std::cout << "BAR enabled!" << std::endl; #else std::cout << "BAR disabled!" << std::endl; #endif return 0; } 在Visual Studio中显示Bar disabled!,在gcc或clang中运行相同的代码时显示Bar enabled!. 这是Microsoft编译器中的错误吗?根据标准,什么是正确的? 解决方法
根据标准,这是未定义的行为.
[cpp.cond],强调我的
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 【ORACLE】安装Oracle 11g 86%报错:Error in invoking tar
- c# – NHibernate QueryOver WhereExists on Many-to-Many
- ruby-on-rails – Rails关联未正确加载
- NoSQL应用征文大赛,赢取iPhone6和火星车!
- xcode / iOS:自动调整以填充视图 – 显式帧大小是必不可少
- xcode – 无法将App下载到iOS 5.1.1 iPhone
- 文件之后xml及jsp等各种页面中的部分显示异常问题
- 如何使用XML存储一个简单的对象(C#)
- SQLite 网络知识
- ruby-on-rails – 带有连接和顺序的独特记录