请填写 BOOL,float ,指针变量与 ” 零值 ” 比较的 if 语句。
提示:这里 ” 零值 ” 可以是 0,0,0 , FALSE 或者 ” 空指针 ” 。例如 int 变量 n 与 ” 零值 ” 比较的 if 语句为: if(n==0)
If(n!=0)
以此类推。
请写出 BOOL flag 与 ” 零值 ” 比较的 if 语句:
对于bool型变量来说,它的逻辑值只有两种,TRUE和FALSE。C语言中将非零值定义为了TRUE,0定义为FALSE。
但是对于有些编译器来讲,TURE有可能等于1,也可能等于-1。
因此,显然if(Bool == 1)或者if(Bool == TRUE)这样的形式都不太好
应该选择if(BOOL)的形式来判断bool型变量。
2.对于浮点型(float)变量
因为对于浮点型变量都是有精度限制的,所以不能够用==来判断两个浮点型变量是否相等。
比较普遍的做法是,判断的两个变量做差,然后和精度相比较
eg. if(val1 <= EPSINON && val1 >= -EPSINON),其中,EPSINON为判断的精度
3.指针变量
对于指针变量,零值(即空指针)在编译器中一般都会被定义为NULL。
因此判断指针变量是否为空,一般的写法是if(NULL == P)
把NULL放在前面的目的是防止出现p = NULL赋值的情况。