我认为这是一个简单的问题,但我正在努力解决以下问题。在示例中,我有以下语句(语言是C):
int foobar
if (foobar)
{
// do something.
}
现在,如果我对此是正确的,当foobar不为零时,这种说法是正确的。所以它应该与if(foobar!= 0);
相同但是如果foobar成为负数会怎么样?
答案 0 :(得分:47)
消极或积极。任何不是0的东西都是if
另外,考虑一个负数:-1
内部C中的 -1表示为:0xFFFFFFFF
,在这种情况下,如果我将其转换为无符号整数,它将是一个正数。
但是在C99标准编译器出现之后,我建议你使用
而是<stdbool.h>
。使猜测工作少了很多:
答案 1 :(得分:2)
同样,
if (foobar)
意味着foobar不为零,所以无论是正面还是负面无关紧要,它仍然不为零
答案 2 :(得分:0)
如果foobar是一个负数(它仍然不等于零),你的语句应该返回true,但是你应该避免那种测试,因为测试那些可能具有不同'true'值的变量不是最好的做法。