如何正确将BOOL转bool

原创 2015年11月19日 11:13:58
void main() {
	//BOOL bRet = -1; //输出的是"ERROR\n" "true\n"
	//BOOL bRet = 0;  //输出的是"FALSE\n" "false\n"
	//BOOL bRet = 1;  //输出的是"TRUE\n" "true\n"
	BOOL bRet = 2;  //输出的是"ERROR\n" "true\n"
	if (bRet == TRUE) {
		cout << "TRUE\n";
	} else if (bRet == FALSE) {
		cout << "FALSE\n";
	} else {
		cout << "ERROR\n";
	}

	//bool bret = (bRet == TRUE);
	bool bret = bRet;	
	if (bret == true) {
		cout << "true\n";
	} else if (bret == false) {
		cout << "false\n";
	} else {
		cout << "error\n";
	}
		
	while (1);
}
原因:
1、BOOL类型的值分辩(0和1);值为0表示FALSE,为1表示TRUE,为其余都是ERROR。BOOL一般有4个字节。
2、bool类型的值分辩(0和非0);值为0表示false,为其余都是true。bool只有一个字节。

结论:

1、所以BOOL转bool的时候应该注意这样转:bool bret = (bRet == TRUE);


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

pl0 bool增添的短路

  • 2012-07-20 10:38
  • 332KB
  • 下载

STL vector<bool>总结

这里是vector的总结,详细原文可看后面链接。 class template specialization std::vector template > class ve...

避免使用vector<bool>

 作为一个STL容器,vector只有两点不对。首先,它不是一个STL容器。其次,它并不存储bool。除此之外,一切正常。 一个对象要成为容器,就必须满足C++标准中列出的所有条件,其...

error C2664: “BOOL CDC::TextOutW(int,int,const CString &)”: 不能将参数 3 从“const char [18]”转换为“const CStr

这是在Visual studio2005或者更高版中使用TextOut()函数或者SetWindowText()等函数时出现的问题。   解决方法: ----------------------...

bool 有趣的代码

  • 2010-07-10 14:54
  • 88KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)