发布时间 : 星期六 文章2010 - C++编码规范更新完毕开始阅读a7c8c5fdf705cc175527091e
设指针变量的名字为p,它与零值比较的标准if语句如下:
if (p == NULL) // p与NULL显式比较,强调p是指针变量
if (p != NULL) 不要写成
if (p == 0) // 容易让人误解p是整型变量
if (p != 0) 或者
if (p) // 容易让人误解p是布尔变量
if (!p)
5.4 循环语句的效率
? 在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。 低效率:长循环在最外层 for (row=0; row<100; row++) { for ( col=0; col<5; col++ ) { sum = sum + a[row][col]; } } ? 高效率:长循环在最内层for (col=0; col{ for (row=0;{ sum = su } } 如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。 效率低但程序简洁 效率高但程序不简洁 for (i=0; i ? 不可在for 循环体内修改循环变量,防止for 循环失去控制。 ? 循环变量应定义在循环内,如for(int i = 0 ; i < 10; i++)。 5.6 switch语句 ? 每个case语句的结尾不要忘了加break,否则将导致多个分支重叠(除非有意使多个分支重叠)。 ? 如果使用多个分支重叠,请在每个分支后面加注释说明“//fall through”。 ? 为提升代码的可读性,多于2条语句的case分支需要使用花括号“{}”标注作用域。 ? 不要忘记最后那个default分支。即使程序真的不需要default处理,也应该保留语句 default : break; 这样做并非多此一举,而是为了防止别人误以为你忘了default处理。