使用“!!”的原因C中的操作员

时间:2017-09-22 04:13:54

标签: c operators qemu

当我遇到如下代码时,我正在阅读QEMU源代码: -

CPUState *cpu_by_arch_id(int64_t id)
{
    CPUState *cpu;

    CPU_FOREACH(cpu) {
        CPUClass *cc = CPU_GET_CLASS(cpu);

        if (cc->get_arch_id(cpu) == id) {
            return cpu;
        }
    }
    return NULL;
}

bool cpu_exists(int64_t id)
{
    return !!cpu_by_arch_id(id);
}

函数 cpu_exists 是一个布尔函数,它返回函数 cpu_by_arch_id 返回的值(在应用运算符!!之后)。正如您所见,cpu_by_arch_id返回指向特定QEMU结构的指针。我发现很难理解如何使用 !! 运算符将返回值转换为布尔值。

在这里使用“!!” - 双重否定运算符的具体目的是什么?

0 个答案:

没有答案