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);
本文详细解析了BOOL和bool两种类型的区别及其在C++中的应用,包括如何正确进行类型转换以及不同值输出的不同结果。
7356

被折叠的 条评论
为什么被折叠?



