可靠性(强制类型转换)
- 当目的结构的空间大于源结构的空间时,要重点关注内存访问超过源结构范围的情形,可能越界。
- 当目的结构的空间小于源结构的空间时,要重点关注对目的结构赋值不能完全覆盖源结构范围的情形,需要考虑字节序。
- 在把某些变量或数组或结构强制转换成另一结构体时,需要考虑结构体的字节对齐问题。
- 与结构体之间的强制类型转换相比,基本数据结构的强制类型转换更容易出现上面描述的情况,使用的时候,一定要慎之又慎。
可维护性
- 坏代码的特征
- 重复代码
- 函数行数超过50行,一个函数包含的功能太多
- 函数入参不超过5个
- 模块之间过度耦合
- 逻辑表达式过于复杂
- 函数调用层次过深
- 如何评价可维护性
- 可理解性
- 可修改性
- 可测试性
- 圈复杂度的概念
- 如何提高可维护性?
- 提炼函数
- 分解条件式
- 针对复杂条件式引入临时性解释变量
- 合并条件式
- 合并重复的条件片断
- 以卫语句替换嵌套条件
- 重新命名函数
- 剖析临时变量
- 宏代替魔鬼数字
- 查询和修改分离
高效率
- 从哪些地方优化?
- 循环体内工作量最小化
- 对重复的运算,应考虑将结果缓存为变量使用
- 避免不必要的内存拷贝
- 较大的结构体类型的入口参数,应使用指针传递
- 把最有可能性的判断放在最前面
- 在需要的时候才申请与释放资源
- 日志必须按合适级别分级打印
- 文件操作使用缓冲
- 字节对齐
- 如何优化?
- 以空间换时间
- 使用模版赋值
- 减少压栈成本,宏代替函数,
- 改变判断顺序
- 应用层软件遍历查表