读书人

关于预处理名字_cplusplus和_STDC_该怎

发布时间: 2012-02-09 18:22:27 作者: rapoo

关于预处理名字__cplusplus和__STDC__
看C++ primer上面说这两个名字不会同时被定义的
但test了一下
=======================================================
#include <iostream>
using namespace std;

int
main()
{
#ifdef __cplusplus
cout < < "it is a cpp program! " < <endl;
#endif

#ifdef __STDC__
cout < < "it is a standard c program! " < < endl;
#endif

return 0;
}
======================================================
结果输出
it is a cpp program!
it is a standard c program!
---------------------------
问题出哪里了?谢谢

[解决办法]
我认为他们都被定义了
我在dev C++上测试也是如此
[解决办法]
这一点我也不是很清楚:用g++/vc++/bcbx/icl在命令行下面直接编译然后运行,得到的结果都是输出
This is C++ program !
This is C++ program ! _print
但是在MinGW Studio中得到的却是
This is C++ program !
This is C++ program ! _print
This is C program !
疑心是IDE传给preprocessor的选项问题,不甚清楚。

读书人网 >C++

热点推荐