天天看點

c++ primer第一章筆記

關于預處理器

編譯标準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;