使用 Intrinsic(内置)Type Bool

Version >= C99

在 C 标准版本 C99 中添加,_Bool 也是本机 C 数据类型。它能够保持值 0(对于 false )和 1(对于 true )。

#include <stdio.h>

int main(void) {
    _Bool x = 1; 
    _Bool y = 0;
    if(x) /* Equivalent to if (x == 1) */
    {
        puts("This will print!");
    }
    if (!y) /* Equivalent to if (y == 0) */
    {
        puts("This will also print!");
    }
}

_Bool 是一个整数类型,但对其他类型的转换有特殊规则。结果类似于 if 表达式中其他类型的用法。在下面的

_Bool z = X;
  • 如果 X 有一个算术类型(是任何类型的数字),z 如果 X == 0 变成 0。否则 z 变成了 1
  • 如果 X 具有指针类型,则 z 如果 X 是空指针则变为 0,否则变为 1

要使用更好的拼写 boolfalsetrue,你需要使用 <stdbool.h>