标签: c++ c compiler-errors compiler-warnings
按预期,对于以下程序,C / C ++编译确实会失败,并显示“警告:指针与整数之间的比较”:
#include <stdbool.h> int main(void) { return (int*)42 == true; }
但是,当true文字更改为false时,编译不会失败。为什么?
true
false
答案 0 :(得分:6)
在C中,宏false定义为:
#define false 0
因此,您正在将指针与0(一个有效的空指针常量)进行比较。