当我浏览其他人编写的一些代码时,我遇到了一个句子,其含义我不确定。任何帮助表示赞赏。
str != ((void *)0)
答案 0 :(得分:4)
这一行有效地将str
(可能是指针)与NULL
指针进行比较。
答案 1 :(得分:1)
((void *)0)与NULL
基本相同从技术上讲,NULL指针是0x0
因此该语句确保指针str不是NULL
编译器
答案 2 :(得分:0)
这是一种测试str
是零还是非零的冗余方法。
在这种情况下,在C和C ++代码中广泛使用(void*)
强制转换通常表明程序员并不真正理解该语言。编译器将在需要它们的许多情况下插入这些强制转换。在这种情况下,根本不需要它。