【问题标题】:C++ Bool Returning Hexadecimal Int?C ++ Bool返回十六进制整数?
【发布时间】:2016-02-24 04:38:28
【问题描述】:

我正在查看一些代码,我看到一个 bool 函数,它定义了一个带有十六进制值的 int 并返回它。下面是它的外观:

bool AttachProcess()
{
    int a = 0x40;
    ...
    return a;
}

bool 不是只返回 true 还是 false 吗?还是 0 或 1?这个函数不会给出错误或警告,所以我一定遗漏了一些东西。有人可以解释一下吗?谢谢!

【问题讨论】:

    标签: c++


    【解决方案1】:

    在 C++ 中,零被认为是假的,所有非零都是真的。在您的情况下,存在从整数到布尔值的隐式转换。

    【讨论】:

    • 好吧,这很有道理。谢谢。
    【解决方案2】:

    truefalse 是非零和零。所以:-

    return a;
    

    return a != 0;
    

    【讨论】:

      猜你喜欢
      • 2010-12-21
      • 1970-01-01
      • 2018-05-16
      • 2017-08-12
      • 2010-10-25
      • 2021-06-04
      • 1970-01-01
      • 2011-04-26
      • 2012-01-29
      相关资源
      最近更新 更多