zzxxa 发表于 2022-9-13 15:58

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

编写高质量代码:改善C程序代码的125个建议 - 建议 1:认识 ANSI C 1
- 建议 2:防止整数类型产生回绕与溢出 6
[*]建议 2-1:char 类型变量的值应该限制在 signed char 与 unsigned char 的交集范围内
[*]建议 2-2:使用显式声明为 signed char 或 unsigned char 的类型来执行算术运算
[*]建议 2-3:使用 rsize_t 或 size_t 类型来表示一个对象所占用空间的整数值单位
[*]建议 2-4:禁止把 size_t 类型和它所代表的真实类型混用
[*]建议 2-5:小心使用无符号类型带来的陷阱
[*]建议 2-6:防止无符号整数回绕
[*]建议 2-7:防止有符号整数溢出
[*]建议 3:尽量少使用浮点类型
[*]建议 3-1:了解 IEEE 754 浮点数
[*]建议 3-2:避免使用浮点数进行精确计算
[*]建议 3-3:使用分数来精确表达浮点数
[*]建议 3-4:避免直接在浮点数中使用“ == ”操作符做相等判断 47
[*]建议 3-5:避免使用浮点数作为循环计数器
[*]建议 3-6:尽量将浮点运算中的整数转换为浮点数
- 建议 4:数据类型转换必须做范围检查

[*]建议 4-1:整数转换为新类型时必须做范围检查
[*]建议 4-2:浮点数转换为新类型时必须做范围检查
- 建议 5:使用有严格定义的数据类型- 建议 6:使用 typedef 来定义类型的新别名

[*]建议 6-1:掌握 typedef 的 4 种应用形式
[*]建议 6-2:小心使用 typedef 带来的陷阱
[*]建议 6-3:typedef 不同于 #define

- 建议 7:变量声明应该力求简洁

[*]建议 7-1:尽量不要在一个声明中声明超过一个的变量
[*]建议 7-2:避免在嵌套的代码块之间使用相同的变量名

- 建议 8:正确地选择变量的存储类型

[*]建议 8-1:定义局部变量时应该省略 auto 关键字
[*]建议 8-2:慎用 extern 声明外部变量
[*]建议 8-3:不要混淆 static 变量的作用
[*]建议 8-4:尽量少使用 register 变量

- 建议 9:尽量不要在可重入函数中使用静态(或全局)变量
- 建议 10:尽量少使用全局变量
- 建议 11:尽量使用 const 声明值不会改变的变量
- 建议 12:尽量减少使用除法运算与求模运算

[*]建议 12-1:用倒数相乘来实现除法运算
[*]建议 12-2:使用牛顿迭代法求除数的倒数
[*]建议 12-3:用减法运算来实现整数除法运算
[*]建议 12-4:用移位运算实现乘除法运算
[*]建议 12-5:尽量将浮点除法转化为相应的整数除法运算

- 建议 13:保证除法和求模运算不会导致除零错误
- 建议 14:适当地使用位操作来提高计算效率

[*]建议 14-1:尽量避免对未知的有符号数执行位操作
[*]建议 14-2:在右移中合理地选择 0 或符号位来填充空出的位
[*]建议 14-3:移位的数量必须大于等于 0 且小于操作数的位数
[*]建议 14-4:尽量避免在同一个数据上执行位操作与算术运算

- 建议 15:避免操作符混淆

[*]建议 15-1:避免“=”与“==”混淆 92
[*]建议 15-2:避免“|”与“||”混淆 94
[*]建议 15-3:避免“&”与“&&”混淆 95

- 建议 16:表达式的设计应该兼顾效率与可读性 95

[*]建议 16-1:尽量使用复合赋值运算符 95
[*]建议 16-2:尽量避免编写多用途的、太复杂的复合表达式 97
[*]建议 16-3:尽量避免在表达式中使用默认的优先级 98

- 建议 17:if 语句应该尽量保持简洁,减少嵌套的层数

[*]建议 17-1:先处理正常情况,再处理异常情况
[*]建议 17-2:避免“悬挂”的 else
[*]建议 17-3:避免在 if/else 语句后面添加分号“;”
[*]建议 17-4:对深层嵌套的 if 语句进行重构

- 建议 18:谨慎 0 值比较

[*]建议 18-1:避免布尔型与 0 或 1 进行比较
[*]建议 18-2:整型变量应该直接与 0 进行比较
[*]建议 18-3:避免浮点变量用“==”或“!=”与 0 进行比较
[*]建议 18-4:指针变量应该用“==”或“!=”与 NULL 进行比较

- 建议 19:避免使用嵌套的“?:”
- 建议 20:正确使用 for 循环

[*]建议 20-1:尽量使循环控制变量的取值采用半开半闭区间写法
[*]建议 20-2:尽量使循环体内工作量达到最小化
[*]建议 20-3:避免在循环体内修改循环变量
[*]建议 20-4:尽量使逻辑判断语句置于循环语句外层
[*]建议 20-5:尽量将多重循环中最长的循环放在最内层,最短的循环放在最外层
[*]建议 20-6:尽量将循环嵌套控制在 3 层以内

- 建议 21:适当地使用并行代码来优化 for 循环
- 建议 22:谨慎使用 do/while 与 while 循环

[*]建议 22-1:无限循环优先选用 for( ; ; ),而不是 while(1)
[*]建议 22-2:优先使用 for 循环替代 do/while 与 while 循环
[*]**** 本内容需购买 ****

eetze 发表于 2022-9-13 23:13

强烈支持楼主ing……

p_hugh 发表于 2022-9-14 06:31

Sample下载的注意了

110395225 发表于 2022-9-14 08:23

强烈支持楼主ing……

wsh3333 发表于 2022-9-14 08:50

激动人心,无法言表!

123cb 发表于 2022-9-14 09:39

强烈支持楼主ing……

chaofengli 发表于 2022-9-14 10:43

强烈支持楼主ing……

hbrklt 发表于 2022-9-14 10:44

强烈支持楼主ing……

tztztztz 发表于 2022-9-14 11:36

666

jsh987321 发表于 2022-9-14 13:57

好像不全,才145页
页: [1] 2
查看完整版本: 编写高质量代码:改善C程序代码的125个建议