typedef的用途大家都是很熟悉的了,遇到很長的標(biāo)識又不便閱讀和表示的時候,就可以
重新定義更有閱讀性和表現(xiàn)力的標(biāo)識。那么,typedef是不是就像險(xiǎn)惡的宏替換呢?開始我也
是這么認(rèn)為的,直到看到一個例子。
1 typedef const* constPointer
2 int constPointer pSomeThing;
現(xiàn)在的問題是,指針pSomeThing是一個常指針呢,還是一個指向一個常量的可變指針?
答案可能會出乎一般人的意料。因?yàn)槿绻皇前凑瘴谋咎鎿Q的語義,pSomeThing應(yīng)該是一個
指向一個int常量的指針。可是實(shí)際上它是一個常指針,指向的int量的值是可變的。
這就是typedef和宏不同的地方。它在定義新的標(biāo)識的時候,并不深入標(biāo)識的內(nèi)部判斷,
而是整個標(biāo)識作為一個整體表達(dá)語義,因此,constPointer表達(dá)的是“常指針”的語義,const
限定符作用于指針之上。就是這么簡單。
posted on 2010-01-20 09:44
Leix 閱讀(335)
評論(0) 編輯 收藏 引用