布尔变量应该初始化为true还是false? 貌似从来没有人这样问过。我先给出我自己答案吧: 为了安全起见, 最好初始化为false.
先看下面的代码:
#include <iostream>
using namespace std;
bool fun()
{
bool b = true;
/*
业务代码;
*/
return b;
}
int main()
{
if(fun())
{
cout << "ok" << endl;
}
else
{
cout << "not ok" << endl;
}
return 0;
}
如果业务代码出现异常(假设没执行), 那么fun函数的返回就是true了, 这样调用者会被误导。 相反, 如果初始化为false, 如果业务代码(假设没执行), 那么fun函数就会返回false, 这会引起调用者的注意。
这涉及到一个虚警和漏检的概念, 虚警不可怕, 大不了虚惊一场。喊狼来啦, 哪怕是假的, 无非就是浪费功夫白白地多逃跑几次而已。 但是, 漏检就危险了, 最终会被狼吃掉的。