当前位置:文档之家› 编写高质量代码:改善C程序代码的125个建议

编写高质量代码:改善C程序代码的125个建议

建议8:正确地选择变量的存储类型
02
2 保持严谨的程序设计,一切从表达式开 始做起
2 保持严谨的程序设计,一切从表达式开始做起
建议12:尽量减少 使用除法运算与求
模运算
建议13:保证除法和 求模运算不会导致除
零错误
建议14:适当地使 用位操作来提高计
算效率
建议15:避免 操作符混淆
建议16:表达式的 设计应该兼顾效率
建议2-4:禁止把 04 s i z e _ t 类 型 和 它 所 代
表的真实类型混用
建议2-5:小心使 05 用 无 符 号 类 型 带 来
的陷阱
建议2-3:使用rsize_t或 03 s i z e _ t 类 型 来 表 示 一 个 对
象所占用空间的整数值单位
建议2-6:防止无
06
符号整数回绕
1 数据,程序设计 之根本
建议2:防止整数类型产生回 绕与溢出
建议2-7:防止有符号整数 溢出
1 数据, 程序设计ttps:///
02
建议3-2:避免使 用浮点数进行精确
计算
04
建议3-4:避免直 接在浮点数中使用
“==”操作符做 相等判断
06
建议3-6:尽量将 浮点运算中的整数
转换为浮点数
01
建议3-1:了解 IEEE 754浮点数
03
建议3-3:使用分 数来精确表达浮点 数
05
建议3-5:避免使 用浮点数作为循环 计数器
1 数据,程序设计之根本
01
建议4-1:整数转换为新类型时必 须做范围检查
02
建议4-2:浮点数转换为新类型时 必须做范围检查
3 程序控制语句应该保持简洁高效
建议23:正确地使 用switch语句
建议24:选择合理的 case语句排序方法
建议25:尽量避免 使用goto语句
建议26:区别continue 与break语句
3 程序控制语句应该保持简洁高效
建议17-1:先处理正常情况,再处
1
理异常情况
建议17-2:避免“悬挂”的else
建议4:数据类型转换必须做 范围检查
1 数据,程序设计 之根本
建议6:使用typedef来定义 类型的新别名
01
建议6-1:掌握typedef的4种
应用形式
02
建议6-2:小心使用typedef带
来的陷阱
03
建议6-3:typedef不同于
#define
1 数据,程序设计之根本
01
建议7-1:尽量不要在一个声明中 声明超过一个的变量
建议5:使用有严格 定义的数据类型
B
D
F
1 数据,程序设计之根本
1
建议7:变量 声明应该力求
简洁
2
建议8:正确 地选择变量的
存储类型
3
建议9:尽量 不要在可重入 函数中使用静 态(或全局)
变量
4
建议10:尽量 少使用全局变

5
建议11:尽量 使用const声 明值不会改变
的变量
1 数据, 程序设计 之根本
2 保持严谨 的程序设计, 一切从表达 式开始做起
建议14:适当地使用位操作来 提高计算效率
https:///
01
02
建议14-1:尽量避免 对未知的有符号数执行
位操作
建议14-2:在右移中 合理地选择0或符号位
来填充空出的位
03
04
建议14-3:移位的数 量必须大于等于0且小
与可读性
2 保持严谨的程序设计,一切从表达式开始做起
建议12-1:用倒数相乘来实现除法
1
运算
建议12-2:使用牛顿迭代法求除数
的倒数
2
建议12-3:用减法运算来实现整数
建议12:尽量减少使用除法运
3
除法运算
算与求模运算
建议12-4:用移位运算实现乘除法
运算
4
建议12-5:尽量将浮点除法转化为
5
相应的整数除法运算
03
3 程序控制语句应该保持简洁高效
3 程序控制语句应该保持简洁高效
建议17:if语句应该尽量 保持简洁,减少嵌套的层

建议18:谨慎0值比较
建议22:谨慎使用 do/while与while循环
建议19:避免使用嵌套的 “?:”
建议21:适当地使用并行 代码来优化for循环
建议20:正确使用for循 环
编写高质量代码:改善C程序 代码的125个建议
演讲人
2 0 11 - 11 - 11
01
1 数据,程序设计之根本
1 数据,程序设计之根本
A
C
E
建议2:防止整数类 型产生回绕与溢出
建议4:数据类型转 换必须做范围检查
建议6:使用 typedef来定义类
型的新别名
建议1:认识 ANSI C
建议3:尽量少 使用浮点类型
02
建议7-2:避免在嵌套的代码块之 间使用相同的变量名
建议7:变量声明应该力求简 洁
A
C
建议8-2:慎用 extern声明外部变

建议8-1:定义局 部变量时应该省略
auto关键字
建议8-3:不要混 淆static变量的作

B
建议8-4:尽量少 使用register变量
D
1 数据,程序设计之根本
2
建议17:if语句应该尽量保持 简洁,减少嵌套的层数
建议17-3:避免在if/else语句后面
3
添加分号“;”
建议17-4:对深层嵌套的if语句进
行重构
4
建议18-1:避免布尔型与0或1进 行比较
建议18-2:整型变量应该直接与0 进行比较
建议18-3:避免浮点变量用“==” 或“!=”与0进行比较
“&&”混淆
2 保持严谨 的程序设计, 一切从表达 式开始做起
建议16:表达式的设计应该兼 顾效率与可读性
https:///
01
02
建议16-1:尽量 使用复合赋值运 算符
建议16-2:尽量 避免编写多用途 的、太复杂的复 合表达式
03
建议16-3:尽量 避免在表达式中 使用默认的优先 级
于操作数的位数
建议14-4:尽量避免 在同一个数据上执行位
操作与算术运算
2 保持严谨 的程序设计, 一切从表达 式开始做起
建议15:避免操作符混淆
https:///
01
建议15-1:避免“=”与“==”
混淆
02
建议15-2:避免“|”与“||”
混淆
03
建议15-3:避免“&”与
建议2:防止整数类 型产生回绕与溢出
https:///
01 02
06
03 05
04
建议2-1:char类型变量的值
01
应该限制在signed char与
unsigned char的交集范围

建议2-2:使用显式声明为 02 s i g n e d c h a r 或
unsigned char的类型来 执行算术运算
相关主题