可以使用int,为什么还要存在bool?

问题描述 投票:0回答:2

计算机科学中,布尔(bool)数据类型只有两个可能的值。 '对或错'。而且,在计算机科学中,1 为 true,0 为 false。那么为什么布尔值存在呢?为什么我们不使用只能返回两个可能值的整数,例如 1 或 0。

例如:

bool mindExplosion = true; // True!
int mindExplosion = 1; // True!!
// Or we can '#define true 1' and it's the same right?

我错过了什么?

c++ boolean
2个回答
6
投票

当我们可以使用int时,为什么还要存在bool?

嗯,您不需要像

int
那么大的东西来表示两种状态,因此允许使用较小的类型来节省空间是有意义的

为什么我们不使用只能返回两个可能值的整数,例如 1 或 0。

这正是

bool
它是一个无符号整数类型,表示 true (1) 或 false (0)。


为此使用特定类型的另一个好处是它无需任何文档即可表达意图。如果我们有一个像(警告,非常做作的例子)这样的函数

void output(T const & val, bool log)

很容易看出 log 是一个选项,如果我们传递 false 它就不会记录。如果是的话

void output(T const & val, int log)

然后我们不确定它的作用。是否要求日志级别?是否登录的标志?还有别的吗?


6
投票

我错过了什么?

表现力。

当声明变量时

int
,它可能仅用于 0 和 1,或者它可能包含 INT_MIN..INT_MAX 中的任何内容。

当变量被声明时

bool

,它就被

明确
地表示它要保存真/假值。 除此之外,这允许编译器在您真正需要

int

的地方使用

bool
时抛出警告,或者尝试将
2
存储在
bool
中。编译器是你的朋友;给它所有可能的提示,这样它就可以告诉你你的代码何时开始看起来很时髦。
    

© www.soinside.com 2019 - 2024. All rights reserved.