关于如何在 C 语言中使用布尔(bool)类型
在 C 语言中,布尔类型不是 C 语言的内置数据类型,C 语言默认将 0 设为 false,将 1 设为 true。但从 C99 开始,添加了 _Bool 类型并引入标准库文件 stdbool.h,从而使得 bool 数据类型能直接应用到 C语言代码中。
stdbool.h实际上只有几行代码:
#ifndef _STDBOOL #define _STDBOOL #define __bool_true_false_are_defined 1 #ifndef __cplusplus #define bool _Bool #define false 0 #define true 1 #endif // __cplusplus #endif // _STDBOOL
它的作用就是:
- 定义 __bool_true_false_are_defined 为 1
- 将 bool 定义为 C99 内置类型 _Bool
- 将 true 和 false 分别定义为 1 和 0
- 对于 _Bool 类型,可以对其任意赋值,任何对其非 0 的赋值在调用此变量时都会返回 1
以下为使用 stdbool.h 的代码示例:
#include <stdbool.h> #include <stdio.h> int main() { printf("true = %d\n", true); printf("false = %d\n", false); bool a = 0; bool b = 'b'; bool c = "Hello world"; printf("bool a = %d\n", a); printf("bool b = %d\n", b); printf("bool c = %d\n", c); return 0; }
运行结果:
true = 1 false = 0 bool a = 0 bool b = 1 bool c = 1