預定義宏
__STDC_HOSTED__
如果編譯器的目標系統環境中包含完整的標準C庫,那麼這個宏就定義爲1,否則宏的值爲0__STDC__
C編譯器通常用這個宏的值來表示編譯器的實現是否和C標準一致,C++11標準中這個宏是否定義以及定成什麼值由編譯器來決定__STDC_VERSION__
C編譯器通常用這個來表示所支持的C標準的版本,比如1999mml,C++11標準中這個宏是否定義以及寫成什麼值將由編譯器來決定__STDC_ISO_10646__
這個宏通常定義爲一個yyyymml格式的整數常量,例如1997121,用來表示C++編譯環境符合某個版本的ISO/IEC 10646標準__func__
基本功能就是返回所在函數的名字,事實上,按照標準定義,編譯器會隱式的在函數的定義之後定義__func__
標識符。在C++11中,標準甚至允許其使用在類或結構體中。
#include <iostream>
using namespace std;
int main()
{
cout<<"Standard Clib: "<<__STDC_HOSTED__<<endl;
cout<<"Standard C: "<<__STDC__<<endl;
// cout<<"C Standard version: "<<__STDC_VERSION__<<endl;
cout<<"ISO/IEC: "<<__STDC_ISO_10646__<<endl;
cout<<"Function name: "<<__FUNC__<<endl;
return 0;
}
[root@localhost codes]# ./a.out
Standard Clib: 1
Standard C: 1
ISO/IEC: 200009
Function name: main
閱讀自:《深入理解C++11:C++11新特性解析與應用》