标准C语言中是没有标准的bool类型的,bool由编译器制定,所以不同的编译器true或false不一定一样
bool类型的实际变量实际是枚举变量
typedef enum
{
true = 1 ,
false = 0
}bool;
条件只判断是0还是非0
if(-1)也是成立的
普通变量和0比较时,要把0写在左边!!!
这是工程经验
if(i==0) --》if (i=0)编译器不会提示这种错误,致命错误啊!!!
if (0==i)【推荐使用】
float型变量是不能直接和0比较的,需要定义精度
float型数不是用离散存储的,因为小数是连续的,计算机比较容易模拟出离散型的,但是比较难模拟出连续的
#define E 0.0000001
float f = 5.0
if (((5-E)<=f)&&(f<=(5+E)))
现在的新型编译器内部都对浮点型进行了一定优化,所以一般情况下不适用精度比较的方法也不会出问题,但是以前的编译器是没有优化的,尤其是从事嵌入式开发,最好谨慎一点