我发现没有原生的bool
类型。人们使用int
或char
- 虽然似乎int
可能比char
更常用?这是真的吗?
我的第一个冲动是使用char
,因为它是一个较小的数据类型,但有些东西我错过了吗? int
对于布尔值是否更好,如果是 - 为什么?
答案 0 :(得分:13)
答案 1 :(得分:3)
如果你正在使用一个相当现代的C编译器,那么你只需要:
#include <stdbool.h>
这通常有一个宏,例如:
#define bool _Bool
可让您在需要_Bool
的任何地方使用C99的内置bool
类型。
答案 2 :(得分:2)
有一个名为_Bool
的本机类型(从C99开始)。在<stdbool.h>
中,还有一个#define
可以提供bool
作为别名(如果需要)(#define
和true
也有false
个})。
答案 3 :(得分:1)
实际上没有真正的区别,因为char在使用时总是被提升为int(检查this)。我从未见过用作bool的char,所以我会去使用int。
答案 4 :(得分:0)
根据 ISO-9899 关系的结果,逻辑和相等运算符的类型为int
。来自true
的{{1}}和false
也是整数。如果你想节省内存 - 使用位字段。