布尔变量应该初始化为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, 这会引起调用者的注意。


     这涉及到一个虚警和漏检的概念, 虚警不可怕, 大不了虚惊一场。喊狼来啦, 哪怕是假的, 无非就是浪费功夫白白地多逃跑几次而已。 但是, 漏检就危险了, 最终会被狼吃掉的。




本文转载:CSDN博客