Skip to content

第四章 程序像河水一样流动着

事件驱动是什么

用户的操作产生事件后,由事件决定程序的流程。事件驱动是人机交互的核心。

4.1 程序的流程分为三种

CPU 中由各种各样的寄存器。其中有一个被称为 PC 指针(程序计数器)的寄存器。负责存储内存地址,该地址指向下一条将被执行的指令。每执行完一条指令,PC 寄存器的值就会自动更新为下一条指令的地址。

PC 寄存器的值在大多数的情况下只会增加。我们把程序的这种流动称为“顺序执行”。

程序的流程总共由三种。除了顺序执行以外,还有“条件分支”和“循环”。

4.2 用流程图表示程序的流程

所谓流程图,正如其名,就是表示程序流程的图。很多专业的程序员,他们在编写程序前,都会通过画流程图或是类似的图来思考程序的流程。

4.3 程序块

4.4 结构化程序设计

结构化程序设计是由学者迪杰斯特拉提倡的一种编程风格。简单地说就是不适用跳转指令。

在程序设计的世界中,如果看到了以“结构化”开头的术语,就可以认为程序的流程是由程序块表示的,而不是用 goto 语句等跳转指令实现的。

4.5 画流程图来思考算法

4.6 特殊的程序流程—中断处理

中断处理是指计算机使得程序的流程突然跳转到程序的特定地方。这样的地方就被称为中断处理程序,而这种跳转是通过 CPU 所具备的硬件功能实现的。

中断是什么

中断就是 stop doing something,停下来干另一件事,干完后在回来做原来的事情

中断处理以硬件发出的请求为条件,使程序的流程产生分支,因此可以说它是一种特殊的条件分支。

4.7 特殊的程序流程—事件驱动

事件驱动是一种适用于 GUI 环境的编程风格,在这种环境中用户可以通过鼠标和键盘来操作应用程序。