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