代码大全2——第12章基本数据类型记录
使用数的普遍规则
避免使用“神秘数值”(指在程序中出现的、没有经过解释的数值文字量,如100或47523)
好处
- 修改会变得更可靠,使用具名常量,修改时不会漏掉多个神秘数值中的某一个或者修改了别的神秘数值
- 修改会变得更容易
- 代码的可读性更强
在一些情况下可以使用硬编码的0和1
预防除零错误
每次使用除法符号时都要考虑表达式的分母是否有可能为0,如果有,则应该使用代码避免这种情况
使类型转换变得明显
确认当不同数据类型之间的转换发生时,阅读你代码的人会注意到这点
避免混合类型的比较
例如不可以将浮点数和整数直接比较
注意编译器的警告
整数
- 检查整数除法
- 检查整数溢出
- 检查中间结果溢出
浮点数
- 避免数量级相差巨大的数之间的加减运算
- 避免等量判断
- 处理舍入误差问题
- 检查语言和函数库对特定数据类型的支持
字符和字符串
- 避免使用神秘字符和神秘字符串
- 避免off-by-one错误
- 了解你的语言和开发环境是如何支持Unicode
- 在程序生命周期中尽早决定国际化/本地化策略
- 如果只需要支持一种文字的语言,考虑使用ISO 8859字符集
- 需要支持多种语言使用Unicode
- 采用某种一致的字符串类型转换策略
布尔变量
用布尔变量对程序加以文档说明
用布尔变量简化复杂的判断
若需要也可以自定义boolean
枚举类型
可以提高可读性,可靠性和简化修改,将枚举类型作为布尔变量的替换方案,检查非法数值
命名常量
使用常量表示固定的量而非硬编码
在数据声明中使用具名常量
避免使用文字量,即使是‘安全的’
数组
确认所有的数组下标都没有超出数组的边界
考虑用容器来取代数组,或者将数组作为顺序化结构来处理
检查数组的边界点
如果数组是多维的,确认下标的使用顺序是正确的
提防下标串话