这听起来像是一个很愚蠢的问题。但是过去几天一直困扰着我。而且,我添加的标签不仅涉及C ++编程语言。我的问题是。在《计算机科学》中,布尔(布尔)数据类型只有两个可能的值。'对或错'。而且,在计算机科学中,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?
Run Code Online (Sandbox Code Playgroud)
我想念什么?
当我们可以使用int时,为什么bool存在?
好吧,您不需要大到一个int即可表示两个状态,因此允许使用较小的类型以节省空间是很有意义的
为什么不使用只能返回两个可能值(例如1或0)的整数。
就是这样bool。 这是一个无符号整数类型,表示true(1)或false(0)。
为此具有特定类型的另一个好处是,它无需文档即可表达意图。如果我们有类似的功能(警告,非常人为的例子)
void output(T const & val, bool log)
Run Code Online (Sandbox Code Playgroud)
很容易看到日志是一个选项,如果我们传递false,它就不会日志。如果不是
void output(T const & val, int log)
Run Code Online (Sandbox Code Playgroud)
然后我们不确定它会做什么。是否要求日志级别?是否登录的标志?还有吗
我想念什么?
表现力。
当一个变量声明int可能被用来只为0和1,也可能持有的任何从INT_MIN..INT_MAX。
声明变量时bool,将明确表明该变量将保留true / false值。
除其他事项外,这允许编译器int在您确实需要a的地方使用an bool或尝试将a存储2在时抛出警告bool。编译器是您的朋友;提供所有可能的提示,以便可以告诉您代码何时开始显得时髦。