bool,int,float和指针变量与“零值”的比较
1、假设布尔变量名字为flag,它与零值比较的标准if语句如下:if (flag) // 表示flag为真if (!flag) // 表示flag为假其它的用法都属于不良风格,例如:if (flag == TRUE)if (flag == 1 )if (flag == FALSE)if (flag == 0)

3、假设浮点变量的名字为x,应当将if (x == 0.0) // 隐含错误的比较转化为if ((x> =-EPSINON) && (x <=EPSINON))其中EPSINON是允许的误差(即精度)

5、有时候我们可能会看到 if (NULL == p) 这样古怪的格式。不是程序写错了,是程序员为了防止将 if (p == NULL) 误写成 if (p = NULL),而有意把p和NULL颠倒。编译器认为 if (p = NULL) 是合法的,但是会指出 if (NULL = p)是错误的,因为NULL不能被赋值。
