您的位置:首页 > 编程语言 > C语言/C++

编译器 内置宏 并且 支持不同c++标准,__cplusplus不同

2016-07-13 23:00 489 查看
#include<iostream>
using namespace std;
int main()
{

#ifdef __LINE__
cout << "__LINE__:" << __LINE__ <<endl;

#endif
#ifdef __FILE__
cout << "__FILE__:" << __FILE__ <<endl;

#endif
#ifdef __DATE__
cout << "__DATE__:" << __DATE__ <<endl;

#endif
#ifdef __TIME__
cout << "__TIME__:" << __TIME__ <<endl;

#endif
#ifdef __STDC__
cout << "__STDC__:" << __STDC__ <<endl;

#endif

#ifdef __cplusplus
cout << "__cplusplus:" << __cplusplus <<endl;

#endif
#ifdef __FUNCTION__
cout << "__FUNCTION__:" << __FUNCTION__ << endl;
#endif
#ifdef __func__ //unknown macro (truely unsoupport macro,it may be keywords)
cout << "__func__:" << __func__ << endl;
#endif
cout << __func__ << endl;

return 0;

}

Administrator@xiuye-PC /cygdrive/d/programming/c++
$ g++ standardmacro.cpp

Administrator@xiuye-PC /cygdrive/d/programming/c++
$ ./a
__LINE__:7
__FILE__:standardmacro.cpp
__DATE__:Jul 13 2016
__TIME__:22:59:39
__STDC__:1
__cplusplus:199711
main
$ g++ -std=c++11 standardmacro.cpp

Administrator@xiuye-PC /cygdrive/d/programming/c++
$ ./a
__LINE__:7
__FILE__:standardmacro.cpp
__DATE__:Jul 13 2016
__TIME__:23:00:57
__STDC__:1
__cplusplus:201103
main

Administrator@xiuye-PC /cygdrive/d/programming/c++
$ g++ -std=c++14 standardmacro.cpp

Administrator@xiuye-PC /cygdrive/d/programming/c++
$ ./a
__LINE__:7
__FILE__:standardmacro.cpp
__DATE__:Jul 13 2016
__TIME__:23:01:18
__STDC__:1
__cplusplus:201402
main
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: