与零值比较
1 布尔变量与零值比较
- //直接使用变量名判断
- 推荐风格
- if (flag) // 表示flag 为真
- if (!flag) // 表示flag 为假
- 不良风格
- if (flag == TRUE)
- if (flag == 1 )
- if (flag == FALSE)
- if (flag == 0)
2 整型变量与零值比较
- //用“==”或“!=”直接与0 比较
- 推荐方式
- if (value == 0)
- if (value != 0)
- 不良风格
- if (value) // 会让人误解 value 是布尔变量
- if (!value)
3 浮点变量与零值比较
- //使用“>=”或“<=”的形式
- if ((x>=-EPSINON) && (x<=EPSINON)) //其中EPSINON 是允许的误差(即精度)。
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];
- }
- }