c/c++ 常量
我看的書里面,這部分講得最復(fù)雜了
后面是const函數(shù), 臨時(shí)變量,const指針,因?yàn)槲沂浅鯇W(xué)c++,有什么不對(duì)的地方,請(qǐng)大家指正
#define BUFSIZE 100
這種是早期c中的標(biāo)準(zhǔn)常量定義方式. 基于預(yù)處理方式實(shí)現(xiàn),他只做簡(jiǎn)單的文本替代,沒(méi)有類型檢查的概念,也沒(méi)有類型檢查的功能
BUFSIZE在這里,只存在于預(yù)處理期間,大多數(shù)情況下,BUFSIZE 的工作方式與普通變量類似,而且沒(méi)有類型信息, 這樣會(huì)隱藏一些比較難發(fā)現(xiàn)的錯(cuò)誤.所以 c++ 用const把值替代進(jìn)編譯器領(lǐng)域來(lái)消除這些問(wèn)題. 則可以這樣寫 :
const int bufsize=100;
這樣就可以在編譯時(shí),編譯器需要知道這個(gè)值的任何地方使用bufsize,同時(shí)編譯器還支持常量折疊,也就是說(shuō)編譯時(shí)可以通過(guò)必要的計(jì)算把一個(gè)復(fù)雜的表達(dá)式通過(guò)縮減簡(jiǎn)單化.
char buf[bufsize];
使用const時(shí),預(yù)處理器會(huì)引入錯(cuò)誤,所以我們應(yīng)該完全用const取代#define
#define BUFSIZE 100
這種是早期c中的標(biāo)準(zhǔn)常量定義方式. 基于預(yù)處理方式實(shí)現(xiàn),他只做簡(jiǎn)單的文本替代,沒(méi)有類型檢查的概念,也沒(méi)有類型檢查的功能
BUFSIZE在這里,只存在于預(yù)處理期間,大多數(shù)情況下,BUFSIZE 的工作方式與普通變量類似,而且沒(méi)有類型信息, 這樣會(huì)隱藏一些比較難發(fā)現(xiàn)的錯(cuò)誤.所以 c++ 用const把值替代進(jìn)編譯器領(lǐng)域來(lái)消除這些問(wèn)題. 則可以這樣寫 :
const int bufsize=100;
這樣就可以在編譯時(shí),編譯器需要知道這個(gè)值的任何地方使用bufsize,同時(shí)編譯器還支持常量折疊,也就是說(shuō)編譯時(shí)可以通過(guò)必要的計(jì)算把一個(gè)復(fù)雜的表達(dá)式通過(guò)縮減簡(jiǎn)單化.
char buf[bufsize];
使用const時(shí),預(yù)處理器會(huì)引入錯(cuò)誤,所以我們應(yīng)該完全用const取代#define
posted on 2004-12-13 20:43 Khan 閱讀(404) 評(píng)論(0) 編輯 收藏 引用 所屬分類: GCC/G++