關于預處理器
編譯标準C++程式的時候編譯器自動産生__cplusplus(前面是兩個下畫線),以用來差別C++程式,而标準C編譯器是産生__STDC__,當然他們不會同時被定義。而C++又需要調用C的函數時候(它們很大程度相容),可以通過如下方式
#ifdef __cplusplus
//我們現在是編譯c++
extern "c" //表示引進C函數
#endif
{
//c函數聲明
}
另外還有部分比較有意義的預定義名字:
__LINE__,__FILE__,__TIME__,__DATA__,具體表示什麼可以通過程式測試,不詳述。
标準C++能引用C的庫檔案,不過在名字上有點差別,在原來的C頭檔案前加個字母c,後面的檔案字尾.h去掉(因為不同平台檔案字尾方式不同,有些沒字尾,是以C++幹脆取消.h字尾),比如C的頭檔案<assert.h>轉化成<cassert>,不過還有點差別。在c++中為了防止名字污染,一般庫的實作者都使用名字空間限定,象标準C++庫使用std,是以要加上此句,
using namespace std;