布尔类型小于整数类型,因此使用较少的内存空间。根据您要在其上/针对其进行编译的系统,一个Int可以是4-8个字节,而一个Bool是1个字节(可以在此MSDN文章中看到)
将其与KISS的某些方面以及良好的程序设计结合起来,显而易见的是,为什么最好使用bool来存储只包含2个值的变量。
当您确定只需要存储2个不同值中的1个时,为什么将对象与可以存储各种值的对象过度复杂化?
如果在其中使用int的系统中存储75,在使用int的系统中会发生什么情况?如果您添加了额外的条件
if (value >= 0 )
return true; //value is greater than 0, thus is true
else
return false; //value is 0 or smaller than 0, thus is false
要么
if (value == 0)
return false; //value is greater than 0, thus is true
else if (value == 1)
return true; //value is 0 or smaller than 0, thus is false
那么您就可以解决这种情况。但是,如果您没有,那么您就不是。
您还可能遇到一种情况(取决于您如何更改int的值),其中您有一个缓冲区溢出,并且值“重新设置”回到0或int的下限(可能在-127到−9,223,372,036,854,775,808的范围, 取决于您的目标体系结构),那么代码中会发生什么?
但是,如果您使用布尔值,则可以使用以下内容:
if(continueBool == true)
return true;
else
return false;
甚至:
return (continueBool== true) ? true : false;
甚至:
return continueBool;
根据您的编译器,可能会对使用Bools存储映射的真/假值的代码进行优化。而对于可能用于存储映射的真/假值的Ints可能无法执行优化。
我们还必须记住,C ++(以及C,Assembly和FORTRAN)用于编写高效,小型和快速的代码。因此,最好在这种情况下使用Bool-尤其是在标记了变量,内存,缓存或处理器时间的使用时。
一个类似的问题是:为什么我要在浮点数中存储一个整数(值)?答:您不应该这样做,因为没有意义。
长话短说:作为您的老师/教师/讲师/教授与您一起探讨不同价值类型的大小(以防万一您错过了它),以及为什么它们在软件开发中很重要。
我希望这可以作为一个起点(我也希望它不会像学徒一样出现)
int
是存储一个整数,而a的目的bool
是存储一个布尔值(true
或false
)。使用bool
IMO比使用IMO更好地反映了它的使用int
。