与零值比较
4.3.1 布尔变量与零值比较
//直接使用变量名判断
推荐风格
if (flag) // 表示flag 为真
if (!flag) // 表示flag 为假
不良风格
if (flag == TRUE)
if (flag == 1 )
if (flag == FALSE)
if (flag == 0)
4.3.2 整型变量与零值比较
//用“==”或“!=”直接与0 比较
推荐方式
if (value == 0)
if (value != 0)
不良风格
if (value) // 会让人误解 value 是布尔变量
if (!value)
4.3.3 浮点变量与零值比较
//使用“>=”或“<=”的形式
if ((x>=-EPSINON) && (x<=EPSINON)) //其中EPSINON 是允许的误差(即精度)。
4.3.4 指针变量与零值比较
//用“==”或“!=”与NULL 比较
推荐方式
if (p == NULL) // p 与NULL 显式比较,强调p 是指针变量
if (p != NULL)
不良风格
if (p == 0) // 容易让人误解p 是整型变量
if (p != 0)
if (p) // 容易让人误解p 是布尔变量
if (!p)
提高循环语句的效率
思想:降低循环体的复杂性
在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU 跨切循环层的次数。
//低效率:长循环在最外层
for (row=0; row<100; row++)
{
for ( col=0; col<5; col++ )
{
sum = sum + a[row][col];
}
}
//高效率:长循环在最内层
for (col=0; col<5; col++ )
{
for (row=0; row<100; row++)
{
sum = sum + a[row][col];
}
}