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