【Linux C】第二章 控制结构

来源:互联网 发布:mac wmv用什么播放器 编辑:程序博客网 时间:2024/05/13 12:20

本章内容中比较精华的是在goto小节中的出错处理模型。以及每个小节中各种结构语句的伪代码表示。通过伪代码可以体会到该语句在解释为汇编后的执行流程。

1.        Goto语句

a)        Goto语句在出错处理中的应用。出错处理的模型核心是:释放资源的顺序与申请资源的顺序相反。

2.        分支结构

3.        短路计算(&&与||) 汇编中被翻译为连续执行的若干跳转。

4.        循环结构:while与do while的区别。此处可以对比以前电机程序中,采样判断手柄初始值并循环采样防飞车是,自己用while而没用do while,导致多了几句。

5.        Switch语句。伪代码中用标号数组,与if else多次比较在执行效率上形成鲜明对比。

switch(score){case A:    case B:     }  被译为  score= xx    goto label[score]      lab[A]: xxxxx           lab[B]:xxxxx    区别于if else的多次判断。

6.        优化控制结构

a)        操作执行速度:加减法(1个时钟周期)<移位<乘运算(5-6)<除(50时钟周期)。

b)        所有乘法可以用移位代替 2的n次幂除法可以用移位代替。

c)        使用数学公式eg.高斯公式求和。

d)        存储问题: x=x+1与x+=1  执行效率的区别(减少内存读取)。

e)        循环优化:循环中一次性计算问题,应当放在循环外。eg:for(i=0;i<strlen(p);i++), 避免每次循环重复无谓运算。

0 0