2012-10-04 179 views
0

當我在其他人編寫的代碼中漫步時,我偶然發現了一個我不確定的含義。任何幫助表示讚賞。指向常量常量的空指針

str != ((void *)0) 

回答

4

此行比較str,假想一個指針,具有NULL指針,有效。

+0

謝謝,這是我的原始猜測。只是想確定。 – Jun

1

((無效*)0)本質上是一樣的NULL

技術上,NULL指針爲0x0

所以這種說法是確保指針,STR,不爲空

編譯器

0

這是測試str是否爲零或非零的冗餘方式。

由於在這種情況下,廣泛使用的(void*)蒙上C和C++代碼往往是一個跡象,表明程序員並沒有真正理解的語言。編譯器會在許多需要的情況下插入這些強制轉換。在這種情況下,根本不需要。