gpt4 book ai didi

c++ - 为什么编译不会失败?

转载 作者:行者123 更新时间:2023-12-03 07:39:34 25 4
gpt4 key购买 nike

不出所料,C/C++编译的确会因以下程序的“警告:指针与整数之间的比较”而失败:

#include <stdbool.h>
int main(void) { return (int*)42 == true; }
但是,当 true文字更改为 false时,编译不会失败。为什么?
  • 确认用于:clang-1100.0.33.12,gcc 7.5.0
  • 无法确认:g++ 7.5.0
  • 最佳答案

    在C中,宏false定义为:

    #define false   0
    因此,您正在将指针与0(一个有效的空指针常量)进行比较。

    关于c++ - 为什么编译不会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64708769/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com