大家在VC中肯定经常用到BOOL类型
大家看看下面这段测试程序
int GetValue()
{
int i =10;
return i;
}
......
BOOL bResult;
bResult = GetValue();
if (bResult == TRUE)
{
//code 1
}
else
{
//code 2
}
这里bResult应当是TRUE而非FALSE,似乎应当执行code 1
但是 bResult == TRUE 却不成立
因为 bResult = 10 而 TRUE = 1
所以实际执行code 2。
大家看看下面这段测试程序
int GetValue()
{
int i =10;
return i;
}
......
BOOL bResult;
bResult = GetValue();
if (bResult == TRUE)
{
//code 1
}
else
{
//code 2
}
这里bResult应当是TRUE而非FALSE,似乎应当执行code 1
但是 bResult == TRUE 却不成立
因为 bResult = 10 而 TRUE = 1
所以实际执行code 2。
if(bResult==TRUE)
的人是很少的,多半写成if(bResult).如果写成
if(bResult==TRUE)
大多数情况下应该再用
else if((bResult==FALSE)
...
else
以后可以写成:if (bResult )
不要写成:if (bResult == TRUE)
我晕
int 返回值付给 bool
除非机缘巧合,怎么可能为true,false
不知某些人有没有把if(a == b)错写成if (a = b), 同样写成if (bResult == TRUE)也不奇怪,因为它本身没错。
如果有过不知是否也是白痴?有些错误也许暂时没发现而已。
-1,1有不同的用途,但是它们都是TRUE,所以才发现该问题。