最冤枉的關鍵字----sizeof

sizeof 是關鍵字不是函數,其實就算不知道它是否爲32 個關鍵字之一時,我們也可以
藉助編譯器確定它的身份。看下面的例子:
int i=0;
A),sizeof(int); B),sizeof(i); C),sizeof int; D),sizeof i;
毫無疑問,32 位系統下A),B)的值爲4。那C)的呢?D)的呢?
在32 位系統下,通過Visual C++6.0 或任意一編譯器調試,我們發現D)的結果也爲4。
咦?sizeof 後面的括號呢?沒有括號居然也行,那想想,函數名後面沒有括號行嗎?由此輕
易得出sizeof 絕非函數。
好,再看C)。編譯器怎麼怎麼提示出錯呢?不是說sizeof 是個關鍵字,其後面的括號
可以沒有麼?那你想想sizeof int 表示什麼啊?int 前面加一個關鍵字?類型擴展?明顯不
正確,我們可以在int 前加unsigned,const 等關鍵字但不能加sizeof。好,記住:sizeof 在
計算變量所佔空間大小時,括號可以省略,而計算類型(模子)大小時不能省略。一般情況下,
咱也別偷這個懶,乖乖的寫上括號,繼續裝作一個“函數”,做一個“披着函數皮的關鍵字”。
做我的關鍵字,讓人家認爲是函數去吧。
發佈了76 篇原創文章 · 獲贊 139 · 訪問量 123萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章