第一章
善于防守——健壮代码的防御性编程技巧
1.检查所有的返回值
2.审慎地处理内存(和其他宝贵资源)
3.在声明位置初始化所有变量
4.尽可能推迟一些声明变量
5.审慎地进行强制类型转换
6.检查数值上下限
总结:任何可能出错的地方都将出错
第二章
精心布局——源代码的版面和样式
1.K&R括号风格
int k_and_r(){
int a=0,b=0;
while(a!=10){
b++;
a++;
}
return b;
}
2.悬挂式(Allman)风格
我喜欢的风格
int exdented()
{
int a=0,b=0;
while(a!=10)
{
b++;
a++;
}
return b;
}
3.缩进的风格
int indented()
{
int a=0,b=0;
while(a!=10)
{
b++;
a++;
}
return b;
}
4.团队内部风格
第三章
名正言顺——为有意义的事物起有意义的名称
第四章
不言自明——编写“自文档化”代码的技巧
1.if-else结构的顺序应当前后一致(例如,总是将“正常”情况放在“错误”
情况之前,或相反)
2.选择描述性的类型
尽可能使用现有的语言功能来描述约束或行为,如:
在c/c++中:const int a;
unsigned int a;
用枚举描述一组相关的值
选择适当的类型:将值的大小放进size_t变量,将指针的运算结果放入ptrdiff_t
变量
3.一个函数只实现一种操作。主函数只调用函数,不实现具体功能
4.命名常量,避免使用神秘数字
(未完待续)