一. 引言
- 保持代码简洁可读
二. 代码风格
(一)命名
- 符合阅读习惯
- 作用域越大,命名越精确
- 不使用匈牙利命令风格,使用驼峰风格
(二)注释
- 全面,不冗余(以阅读者的角度看)
- 不要复制粘贴写注释
(三)格式
- 行宽与可读性
- 换行:合适地方换行(可读),同类对齐或层类缩进
四. 编程实践
(1)预处理
- 宏
(2)头文件
- 公开声明一套接口
- 避免万能头文件(放冗余的文件)
(3)数据类型
(4)常量
(5)变量
- 不使用未初始化变量
- 不在子域总使用相同命名
- 资源及时释放
(6)表达式
- 操作数有相同的基本类型
- 算式中不使用自增自减
(7)控制语句
- 判断结果为布尔
- 循环需要安全退出
(8)声明和初始化
- 不要声明标识符
(9)整数
- 注意:整数溢出,回绕,转换时截断,错误位移,除0
(10)指针和数组
- sizeof 的使用
- 不同类型指针的强制转换
(11)字符串
- 以’\0’结尾
- 注意缓存区溢出
(12)断言
- 一个错误使用一个
- 不在系统中使用assert()
(13)函数设计
- 外部传入后需要校验(传入另外一个模块也需要)
(14)函数使用
- 处理返回值
(15)格式化输入/输出
- 注意:参数类型,参数数目,长度,用户输入
(16)内存分配函数
- 禁用realloc()与alloca()
(17)安全函数
- 使用公司认证的安全函数,不要去重命名
(18)文件函数
(19)其他函数
- 注意system()函数
- 多线程下使用线程安全函数
- 信号处理中,保证函数异步安全
五. 其他
- 删除无效代码
- 不使用rand()函数
- 清理敏感信息