我看的書里面,這部分講得最復雜了
后面是const函數, 臨時變量,const指針,因為我是初學c++,有什么不對的地方,請大家指正
#define BUFSIZE 100
這種是早期c中的標準常量定義方式. 基于預處理方式實現,他只做簡單的文本替代,沒有類型檢查的概念,也沒有類型檢查的功能
BUFSIZE在這里,只存在于預處理期間,大多數情況下,BUFSIZE 的工作方式與普通變量類似,而且沒有類型信息, 這樣會隱藏一些比較難發現的錯誤.所以 c++ 用const把值替代進編譯器領域來消除這些問題. 則可以這樣寫 :
const int bufsize=100;
這樣就可以在編譯時,編譯器需要知道這個值的任何地方使用bufsize,同時編譯器還支持常量折疊,也就是說編譯時可以通過必要的計算把一個復雜的表達式通過縮減簡單化.
char buf[bufsize];
使用const時,預處理器會引入錯誤,所以我們應該完全用const取代#define