如果不使用
,我想知道是否会有很大的性能损失if (MyBoolean)
我用
if (MyBoolean == true)
我一直被告知== boolean是一个愚蠢的instructino,因为所有语言都理解是否(bool),但我想知道这两种评估布尔表达式的方式是否存在真正的区别。
感谢您阅读
答案 0 :(得分:1)
没有。编译器非常聪明。它们将生成相同的二进制代码。
答案 1 :(得分:0)
优化后,两个代码的性能可能相同。但是,它们并不等同(至少在C语言系列中)。在这些语言中,true
只是众多非零整数中的一种。但是,如果"布尔"碰巧是任何其他非零整数,即使" boolean"是真的。这是C中的一个例子:
Foo* makeFoo();
int main() {
Foo* myFoo = makeFoo();
if(myFoo) {
printf("Successfully created a Foo object.\n");
}
// The following doesn't work, because true is just the number 1, and you can't place an object at that address.
if(myFoo == true) {
printf("You will never see this!\n");
}
}