以下摘自《林锐-高质量c++c编程指南》
布尔变量与零值比较
不可将布尔变量直接与TRUE、FALSE或者1、0进行比较。
假设布尔变量名字为flag,它与零值比较的标准if语句如下:
if (flag) // 表示flag为真
if (!flag) // 表示flag为假
整型变量与零值比较
应当将整型变量用“==”或“!=”直接与0比较。
假设整型变量的名字为value,它与零值比较的标准if语句如下:
if (value == 0)
if (value != 0)
浮点变量与零值比较
不可将浮点变量用“==”或“!=”与任何数字比较。
无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“> =”或“ <=”形式。
if ((x> =-EPSINON) && (x <=EPSINON))
指针变量与零值比较
应当将指针变量用“==”或“!=”与NULL比较。
if (p == NULL) // p与NULL显式比较,强调p是指针变量
if (p != NULL)