A.假设布尔变量名字为flag,它与零值比较的标准if语句如下。
第一种:
if(flag==TRUE)
if(flag==FALSE)
第二种:
if(flag)
if(!flag)
B.假设整型变量的名字为value,它与零值比较的标准if语句如下。
第一种:
if(value!=0)
if(value==0)
第二种:
if(value)
if(!value)
C.假设浮点变量的名字为x,它与0.0的比较如下。
第一种:
if(x==0.0)
if(x!=0.0)
第二种:
if((x>=-EPSINON)&&(x<=EPSINON))
if((x<-EPSINON)&&(x>EPSINON))
其中,EPSINON是允许的误差(精度)。
D.指针变量p与0的比较如下。
第一种:
if(p==NULL)
if(p!=NULL)
第二种:
if(p==0)
if(p!=0)
答案:
A的第二种风格较好,主要是因为不同语言中TRUE的值不定,而FALSE都一直定为0,所以不能简单用数值比较。
B的第一种风格较好,虽然FALSE的值为0,但是它的意义更主要在于bool值,表判断,这样容易让人联想value是一个bool值。
C的第二种风格较好,无论是float还是double类型的变量,都有精度限制。
D的第一种风格较好,使用NULL,更能标明p是指针。