不出所料,C/C++编译的确会因以下程序的“警告:指针与整数之间的比较”而失败:
#include <stdbool.h>
int main(void) { return (int*)42 == true; }
但是,当true
文字更改为false
时,编译不会失败。为什么?最佳答案
在C中,宏false
定义为:
#define false 0
因此,您正在将指针与0(一个有效的空指针常量)进行比较。
关于c++ - 为什么编译不会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64708769/