1700414590
通常把用户在应用程序中点击鼠标键或敲击键盘按键这样的操作称为事件(Event)。负责检测事件的是Windows。Windows通过调用应用程序的WndProc()函数通知应用程序事件的发生。而应用程序则根据事件的类型做出相应的处理。这种机制就是事件驱动。可以说事件驱动也是一种特殊的条件分支,它以从Windows送来的通知为条件,根据通知的内容决定程序下一步的流程
1700414591
1700414592
要实现事件驱动,就必须把应用程序中的WndProc()函数(称为窗口过程,Window Procedure)的起始内存地址告诉Windows。这一步将在应用程序WinMain()中作为初始化处理被执行
1700414593
1700414594
事件驱动是一种适用于GUI环境的编程风格。在这种环境中用户可以通过鼠标和键盘来操作应用程序。虽然事件驱动的程序也可以用流程图表示,但由于要排列很多的菱形符号(表示条件分支),画起来会很复杂。所以下面介绍便于表示事件驱动的“状态转化图”。状态转化图中有多个状态,反映了由于某种原因从某个状态转化到另一个状态的流程。工作在GUI环境中的程序,其显示的在画面上的窗口就有若干个状态。例如,图4.15所示的计算器应用程序就可以看作包含三个状态:“显示计算机结构”、“显示第一个输入的数”以及“显示第二个输入的数”。随着用户按下不同种类的键,状态也会发生转变。
1700414595
1700414596
图4.15 Windows附带的计算器应用程序
1700414597
1700414598
1700414599
1700414600
1700414601
在状态转化较中,用矩形写上状态的名称,用箭头表示状态转化的方向,并且在箭头上标注引起状态转化的原因(事件)(如图4.16所示)
1700414602
1700414603
图4.16 计算器应用程序的状态转化图
1700414604
1700414605
1700414606
1700414607
1700414608
对于觉得画图很麻烦的人,笔者推荐使用“状态转化表”(如表4.2所示)。因为制表的话,用Excel等表格软件就可以完成,修改起来也要比图方便。在状态转化表中,行标题是带有编号的状态,列标题是状态转化的原因,而单元要是目标状态的编号
1700414609
1700414610
表4.2 计算机程序的状态转化表的例子
1700414611
1700414612
1700414613
1700414614
1700414615
也许读完中断处理和事件驱动这两节,诸位会觉得稍微有些混乱,但程序的流程还是只有顺序执行、条件分支和循环三种。这一点没有改变,其中的顺序执行是最基本的程序流程,这是因为CPU中的PC寄存器的值会自动更新,条件分支和循环,在高级语言中用程序块表示,在机器语言和汇编语言中用跳转指令表示,在硬件上是通过把PC寄存器的值设为要跳转到的目的地的内存地址来实现的。只要能充分理解这些概念就OK了
1700414616
1700414617
在接下来的第5章,将更详细地介绍在本章略有涉及的算法
1700414618
1700414619
1700414620
1700414621
1700414623
计算机是怎样跑起来的 来自企业培训现场
1700414624
1700414625
电阻颜色代码的谐音助记口诀
1700414626
1700414627
无论是哪个行业,都有那么一堆数字、结论是从业者必知必会的知识,不得不加以记忆。例如,对于硬件工程师来说,电阻的颜色代码(用于表示电阻值的颜色搭配)就必须要熟记。在电阻表面,可以用10种不同颜色的色环来分别表示0-9的数字。为了方便记忆,有人还编写了谐音助记口诀,在从业者之间广为流传
1700414628
1700414629
数字 颜色 谐音助记口诀
1700414630
1700414631
0 黑 黑灵(零)芝
1700414632
1700414633
1 棕 粽(棕)子叶
1700414634
1700414635
2 红 红(红)孩儿(二)
1700414636
1700414637
3 橙 三乘(橙)轿
1700414638
1700414639
4 黄 黄(黄)丝(四)带
[
上一页 ]
[ :1.70041459e+09 ]
[
下一页 ]