摘要:
二. WaitForMultipleObject 等待单个线程返回 1. 函数原型 2. 参数说明 第一个参数 nCount 为等待的内核对象个数,可以是 0 到 MAXIMUM_WAIT_OBJECTS (64)中的一个值。 第二个参数 lpHandles 为一个存放被等待的内核对象句柄的数组。 阅读全文
摘要:
信号与槽 1.概述 信号和槽机制是 Qt 的核心机制,信号和槽是一种高级接口,应用于对象之间的通信,它是 Qt 的核心特性,也是 Qt 区别于其他工具包的重要地方。信号和槽是 Qt 自行定义的一种通信机制,它独立于标准的 C/C++ 语言,因此要正确的处理信号和槽,必须借助一个呗称为 moc ( 阅读全文
摘要:
1. 元对象工具 元对象编译器 MOC(meta object compiler)对 C++ 文件中的类声明进行分析并产生用于初始化元对象的 C++ 代码,元对象包含全部信号和槽的名字及指向这些函数的指针。 MOC 读 C++ 源文件,如果发现有 Q_OBJECT 宏声明的类,它就会生成另外 阅读全文
摘要:
隐式共享 隐式共享又称为回写复制(copy on write)。当两个对象共享同一分数据时(通过浅拷贝实现数据共享),如果数据不改变,则不进行数据的复制。而当某个对象需要需要改变数据时,则进行深拷贝。 程序在处理共享对象时,使用深拷贝和浅拷贝这两种方式复制对象。所谓深拷贝,就是生成对象的一个 阅读全文
摘要:
6. C 函数调用机制概述 在 Linux 内核程序 boot/head.s 执行完基本初始化操作之后,就会跳转区执行 init/main.c 程序。那么 head.s 程序时如何把执行控制转交给 init/mian.c 程序呢?即汇编程序时如何调用执行 C 语言程序的?这里我们首先描述一下 C 阅读全文
摘要:
1. C 语言程序概述 GNU gcc 对 ISO 标准 C89 描述的 C 语言进行了一些扩展,其中一些扩展部分已经包括进 IOS C99 标准中。本节给出了内核中经常用到的一些 gcc 扩展语句的说明。 2. C 程序编译和链接 使用 gcc 汇编器编译 C 语言程序时通常会经过四个处理 阅读全文
摘要:
1. 概述 由于操作系统许多关键代码要求有很高的执行速度和效率,因此在一个操作系统源代码中通常就会包含大约 10% 左右的起关键作用的汇编语言程序量。Linux 操作系统也不例外,它的 32 位初始化代码、所有中断和异常处理过程接口程序、以及很多宏定义都使用了 as 汇编语言程序或扩展的嵌入式汇 阅读全文
摘要:
11. 数组 (1)数组初始化时,如果初始化数字个数超过存储区个数,就忽略多余数字。如果初始化数字个数少于存储区个数,则后面的存储区自动被初始化为0。 (2)数组名称可以代表数组里第一个存储区的地址。可以对数组名称进行sizeof计算,结果是数组所包含的总字节数。 (3)变长数组:C99规范允许声明 阅读全文
摘要:
控制器和控制卡(3) 7. 软盘和硬盘控制器 PC 机的软盘控制子系统有软盘片和软盘驱动器组成。由于软盘可以存储程序和数据并且携带方便,因此长期以来软盘驱动器是 PC 机上的标准配置设备之一。硬盘也是由盘片和驱动器组成,但是通常硬盘的金属盘片固定在驱动器中,不可拆卸。 由于硬盘具有河大的存储 阅读全文
摘要:
控制器和控制卡(2) 5. 串行(xing)控制卡 (1)异步串行通信原理 两台计算机/设备进行数据交换,即通信,必须像人们对话一样使用同一种语言。在计算机通信术语中,我们把计算机/设备与计算机/设备之间的“语言”称为 通信协议 。通信协议规定了传送一个有效数据长度单位的格式。通擦我们使用术语 阅读全文