布尔变量应该初始化为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, 这会引起调用者的注意。
这涉及到一个虚警和漏检的概念, 虚警不可怕, 大不了虚惊一场。喊狼来啦, 哪怕是假的, 无非就是浪费功夫白白地多逃跑几次而已。 但是, 漏检就危险了, 最终会被狼吃掉的。