《Linux C程序设计大全》(吴岳版)
说明
- 禁止转载
- 笔记目录与书籍略有不同
- 始记于2018年9月9日
- 2019年8月16日第一次修订
书籍信息
版次 | 2009年2月第1版 |
ISBN | 9787302192114 |
笔记
二. 控制结构
-
错误判断(goto)
-
错误时,goto至错误处理语句(析构),释放未完成资源
-
释放顺序与构建顺序相反
E.g.
文件不存在,goto err1 文件打开失败,goto err2 所需资源分配失败,goto err3 內容读取失败,goto err4 ... err4: free 3分配的资源 err3: 关闭2打开的文件 err2: err1: return 错误码
-
-
短路计算
- 可使用位运算代替乘法和除法中的2倍数,尽量避免使用除法。
-
循环语句
- 条件中避免使用函数,避免造成函数的重复调用
(见三-1-2) - 循环条件中的变量可使用局部变量(尽量避免使用全局变量作为循环条件)
(见二-5-5)
- 条件中避免使用函数,避免造成函数的重复调用
-
条件判断
switch
有一个跳转表,执行速度很快,但跳转表会占用更多空间
-
控制结构的优化
- 各控制结构之间可互相替换(基本符号等除外)
switch
以空间换实间。If…else…
连接判断应以概率大的选项为首,依次排序。- 尽量使用
+=
、-=
、++
、--
代替=
,可节省时间和内存。(相对复杂的语句的除外) - 避免将循环算子使用率高的变量设置为全局/静态变量,编译器会自动优化至寄存器,全局/静态变量是在内存中。
(同三-5-2)