摘要:
字符设备 字符以每个字符为单位进行读写操作设备。它们是一种逐字符流式设备,字符都是独立的。 例如,键盘、USB、串口设备等通常被视为字符设备,因为它们接受和发送单个字符或字节的数据。 字符通常不支持随机访问,设备只能按顺序访问数据。因此,无法像文件系统那样以块为单位读取或写入数据。 字符的数据传输通 阅读全文
摘要:
指针函数(Pointer to Function) 指针函数:是指一个函数,其返回类型是一个指向函数的指针。这意味着该函数返回一个可以调用踢啊函数的指针。通常情况下,指针函数的声明如下: 返回类型 (*函数指针变量名)(参数类型1,参数类型2,.....); 例如,如下是一个简单的指向函数指针声明的 阅读全文
摘要:
冒泡排序 是一种简单的比较排序算法,它的特点包括以下几点: 基本原理:冒泡排序基于比较和交换相邻元素的基本原理。它重复遍历整个数组,多次比较相邻的元素并根据需要交换它们的位置,以将最大(或最小)的元素逐渐冒泡到数组的右侧(或左侧)。 稳定性:冒泡排序是一种稳定的排序算法,意味着相等元素的相对位置在排 阅读全文
摘要:
本章主要描述boot/目录中的三个汇编代码文件,见列表6-1所示。正如在前一章中提到的,这三个文件虽然都是汇编程序,但却使用了两种语法格式。bootsect.s和setup.s是实模式下运行的16位代码程序,采用近似于Intel的汇编语言并且需要使用Intel8086汇编编译器和连接器as86和ld 阅读全文
摘要:
说明 本章首先概要介绍了Linux内核的编制模式和体系结构,然后详细描述了Linux内核源代码目录中组织形式以及子目录中各个代码文件的主要功能以及基本调用的层次关系。接下来就直接切入正题,从内核源文件Linux/目录下的第一个文件Makefile开始,对每一行代码进行详细注释说明。本章内容是对内核源 阅读全文
摘要:
##qmake配置文件(通常是.pro文件) * TARGET:指定项目的目标输出文件名,通常是可执行文件的名称。 * TEMPLATE:指定项目的类型,例如应用程序('app')或库('lib')。 * SOURCES:列出了项目中的源文件,包括C++源文件(.cpp)和其他支持的文件类型。 * 阅读全文
摘要:
pragma once 是一个预处理指令,用于在C++源代码中防止头文件的多重包含。当一个头文件被多次包含在同一个源文件中,可能会导致重复定义和其他编译错误。为了避免这种情况,可以使用 #pragma once 来确保头文件只被编译一次。 具体来说,#pragma once 会在编译器处理源代码之前 阅读全文
摘要:
##说明 当涉及 Qt 网络编程时,通常会使用 Qt 提供的网络模块,其中最常用的是 QTcpSocket 和 QTcpServer 类 ###QTcpSocket QTcpSocket 是 Qt 网络模块中的一个类,用于实现 TCP 客户端的网络通信。它提供了一个接口,允许你连接到远程主机并在网络 阅读全文
摘要:
* 支持C++17标准。Qt6要求使用兼容C++14标准的编译器,以便使用一些C++语言的新特性。 * Qt核心库的改动。设计了新的属性和绑定系统;字符串全面支持Unicode;修改了QList类的实现方式,将QVector类和QList类统一为QList类;QMetaType和QVariant是Q 阅读全文
摘要:
##Q_ASSERT Q_ASSERT是Qt框架中的一个宏,用于在代码中插入断言语句,用于检查程序的运行时条件是否满足。断言是一种在程序中用于验证假设的技术。如果断言条件为假,则会导致程序终止并输出错误信息,以帮助开发人员在调试时更容易地发现问题。 ##Q_ASSERT宏的使用方式如下: ``` # 阅读全文