![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
我的小白学习笔记
文章平均质量分 65
枯木遇南风丨
鲜衣怒马少年时,不负韶华行且知
展开
-
day4 QT主窗口
QMainWindowQMainWindow是用于创建应用程序的主窗口的类,通常用于创建具有复杂布局和多个功能区域的应用程序窗口。 与QWidget和QDialog不同,QMainWindow提供了一个主要的菜单栏、工具栏、状态栏和中央部件,使得创建复杂的多文档界面(MDI)应用程序更加方便。 它通常用于创建大型的桌面应用程序。示例#include "mainwindow.h"#include <QMenu>#include <QMenuBar>#inclu原创 2023-07-03 22:37:46 · 342 阅读 · 0 评论 -
day3 QT对话框
自定义对话框是根据特定需求创建的定制化对话框。开发者可以通过继承QDialog或其他适合的类,根据需要定义对话框的布局、控件和交互逻辑。创建一个继承自QDialog的自定义对话框类。在自定义对话框类中定义布局、添加控件和信号槽等内容。在应用程序中创建自定义对话框对象,并显示对话框。原创 2023-07-03 16:53:16 · 1027 阅读 · 0 评论 -
day2 QT按钮与容器
目录按钮1、QPushButton2、QToolButton3、QRadioButton4、QCheckBox示例容器编辑1. QGroupBox(分组框)2. QScrollArea(滚动区域)3. QToolBox(工具箱)4. QTabWidget(选项卡控件)5. QStackedWidget(堆叠控件)6. QFrame(框架控件)7. QWidget(窗口部件)8. QMdiArea(多文档界面区域)9. QDockWid原创 2023-07-03 16:36:30 · 524 阅读 · 0 评论 -
day1 QT 入门与基础控件
【代码】day1 QT 入门与基础控件。原创 2023-07-01 18:05:30 · 375 阅读 · 0 评论 -
day10 STL(Standard Template Library)
迭代器可以定义容器的起始位置和结束位置,用于指定所需操作的元素范围。原创 2023-06-28 20:03:14 · 135 阅读 · 0 评论 -
day9 模板
在C++中,可以使用关键字template来定义一个模板。// 类定义// 函数定义// 结构体定义表示类型参数,可以根据需要选择任何合法的标识符。通常情况下,使用 `T` 表示 `Type`。在模板的定义中,可以使用类型参数 `T` 来代表实际要使用的类型,从而实现通用性。在实际使用中,可以根据需要添加多个类型参数。模板还支持非类型参数,也就是可以使用常量表达式作为参数。通过使用模板,可以编写具有通用性和灵活性的代码,以适应不同的数据类型和需求。原创 2023-06-28 19:40:01 · 103 阅读 · 0 评论 -
day8 转换函数
成员转换函数class A{public:private:int data;原创 2023-06-28 19:25:34 · 102 阅读 · 0 评论 -
day7 异常
C++中的自定义异常类可以用于编写更为可靠和安全的程序,它的作用是在程序出现错误或异常时抛出自定义的异常对象,以提供更具体的错误信息和更为灵活的处理方式。自定义异常类可以用在需要检测和处理各种错误和异常情况的场景下,比如网络编程、文件操作、内存管理等。原创 2023-06-25 16:29:27 · 41 阅读 · 0 评论 -
day6 多态
在C++中,如果一个类继承自其它类,且重写了父类中的一个函数,那么当该函数被调用时,实际执行的是子类中的同名函数,而不是父类中的函数。原创 2023-06-25 16:05:05 · 56 阅读 · 0 评论 -
day5 继承与组合
继承和组合是两种表达对象之间关系的方式:1、继承表示“是一个”,2、组合表示“有一个”。例如,一只鸟可以继承“动物”这个类,因为它是动物的一种;又例如,一台电脑由主板、CPU、内存等组成,每个部件都是电脑的一部分,因此使用组合来表示它们之间的关系。在具体的程序设计中,需要根据实际需要来选择使用哪种方式。原创 2023-06-25 11:45:08 · 57 阅读 · 0 评论 -
day4 特殊运算符重载
【代码】day4 特殊运算符重载。原创 2023-06-23 12:32:37 · 38 阅读 · 0 评论 -
day3 普通运算符重载
C++中的运算符是用来对内置类型进行运算的,例如加号(+)、减号(-)、等号(=)等。而普通运算符重载的作用就是让我们能够为自定义的类对象,也赋予与内置类型相同的运算符功能,从而可以对类对象执行加减乘除、赋值和比较等操作。例如,如果我们定义了一个表示时间的类time,我们可以通过重载"+"运算符,使得类对象支持时间加法运算。当我们执行类对象之间的加法运算时,重载的"+"运算符将会按照我们自定义的方式来计算结果,从而实现时间加法的功能。C++语言中,我们可以自定义一个类,用来表示我们想要的数据类型。原创 2023-06-22 23:10:18 · 43 阅读 · 0 评论 -
day2 类和对象
1、在类A中,定义了两个成员函数:show()和setdata(int data),以及一个数据成员a。其中,show()函数用于输出字符串"xxxxxxxx",setdata(int data)函数用于将参数data的值赋给数据成员a。而getdata()函数是类A的公共接口,用于返回数据成员a的值,它实现被放在类的外部。然后通过调用x.getdata()函数,输出a的值。3、需要注意的是,C++中类的成员函数必须在类定义中声明,在类定义外部进行实现,因此getdata()函数的实现放在了类的外部。原创 2023-06-22 16:12:24 · 307 阅读 · 0 评论 -
day1 从 C 到 C++
miniGUIC/C++一般一般国产资源占用少操作硬件底层方便QTC/C++很好很好开源资源占用较少操作硬件底层方便Androidjava很好差用户基数大大公司可靠较好.NETC#很好较好用户基数大大公司可靠较好。原创 2023-06-20 23:26:29 · 44 阅读 · 0 评论 -
day10 伪操作与混合编程
不会生成代码,只是在编译之前告诉编译器怎么编译。原创 2023-06-19 14:02:57 · 121 阅读 · 0 评论 -
day9 专用指令
MMU是内存管理单元的缩写,是一种硬件设备,能将虚拟地址翻译成物理地址,实现虚拟内存的功能。3. 方便了进程之间的内存隔离,使得进程之间的内存空间相互独立,保障了数据的安全性。MRC 将协处理器中寄存器中的数据传送到ARM处理器中的寄存器。MCR 将ARM处理器中寄存器中的数据传送到协处理器中的寄存器。1. 提高了进程的内存使用效率,使进程能够使用更多的内存空间;STC 将协处理器中的数据写入到存储器。LDC 将存储器中的数据读取到协处理器。3.协处理器寄存器传送指令。原创 2023-06-15 23:36:21 · 203 阅读 · 0 评论 -
day8 栈顶的种类与应用
栈指针指向最后一次压入到栈中的数据的相邻位置,压栈时可直接压栈,之后需要将栈指针移动到相邻位置。栈指针指向最后一次压入到栈中的数据,压栈时需要先移动栈指针到相邻位置然后再压栈。空增(EA)、空减(ED)、满增(FA)、满减(FD)压栈时栈指针越来越大,出栈时栈指针越来越小。压栈时栈指针越来越小,出栈时栈指针越来越大。ARM处理器一般使用。原创 2023-06-11 16:36:57 · 492 阅读 · 0 评论 -
day7 跳转与存储器访问指令
带返回的跳转指令,本质就是将PC寄存器的值修改成跳转标号下指令的地址,同时将跳转指令下一条指令的地址存储到LR寄存器。@ 将R1寄存器中的数据的Bit[15:0]写入到R2指向的内存空间。@ 将R1寄存器中的数据的Bit[31:0]写入到R2指向的内存空间。@ 将R1寄存器中的数据写入到R2+8指向的内存空间,然后R2自增8。@ 将R1寄存器中的数据的Bit[7:0]写入到R2指向的内存空间。@ 将R1寄存器中的数据写入到R2指向的内存空间,然后R2自增8。@ ARM指令集中大多数指令都可以带条件码后缀。原创 2023-06-09 12:41:56 · 373 阅读 · 0 评论 -
day6 数据处理指令
第二操作数中的哪一位为1,就将第一操作寄存器的中哪一位清零,然后将结果写入目标寄存器。@ 第二操作数: 第二个参与运算的数据(可以是寄存器或立即数)@ 立即数的优点:取指的时候就可以将其读取到CPU,不用单独去内存读取,速度快。@ 第一操作寄存器:第一个参与运算的数据(只能是寄存器)@ 立即数的本质就是包含在指令当中的数,属于指令的一部分。@ 立即数的缺点:不能是任意的32位的数字,有局限性。@ 数据运算指令对条件位(N、Z、C、V)的影响。原创 2023-06-09 01:00:59 · 234 阅读 · 0 评论 -
day5 ARM指令集导学
2.跳转指令: 实现程序的跳转,本质就是修改了PC寄存器。6.协处理器指令: 操作协处理器的指令。> 每条C语句都要被编译器编译成若干条汇编指令才能被CPU识别和执行。即C语句中的指令CPU不一定能直接识别,需要编译器进行“翻译”> 汇编中寄存器的使用、栈的分配与使用、程序的调用、参数的传递等。> C中寄存器的使用、栈的分配与使用、程序的调用、参数的传递等。即汇编中所有的指令都是CPU能够识别和执行的。本身不是指令,编译器可以将其替换成若干条指令。原创 2023-06-08 17:41:32 · 512 阅读 · 0 评论 -
day4 ARM异常处理
处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生这时处理器就要将当前的程序暂停下来转而去处理这个异常的时间异常事件处理完成之后再返回到被异常打断的点继续执行程序。指令流水线机制的引入确实能够大大的提升指令执行的速度但在实际执行程序的过程中很多情况下流水线时是无法形成的,比如:芯片刚上电的前两个周期、执行跳转指令后的两个周期等。所以指令流水线的引入以及优化只能使平均指令周期不断的接近1而不可能真正的达到1,且流水线级数越多芯片设计的复杂,程度就越高,芯片的功耗就越高。原创 2023-06-08 12:41:30 · 465 阅读 · 0 评论 -
day3 ARM寄存器组织
栈内存放的是临时数据,当有临时数据需要存放在栈中时,就可以从SP寄存器中获取栈顶地址将数据存入,SP寄存器也会随之移动指向下一个空栈。注:在某个特定模式下只能使用当前模式下寄存器,一个模式下特有的寄存器其他模式下不可使用;包括通用寄存器、专用寄存器、控制寄存器;程序计数器,用于存储当前取址指令的地址;寄存器是处理器内部的存储器,没有地址;栈指针,用于存储当前模式下的栈顶地址;带有三角的是当前模式下特有的寄存器;[31:24]为条件域用F表示、[23:16]为状态域用S表示、[15:8]为预留域用X表示、原创 2023-06-07 21:13:48 · 617 阅读 · 0 评论 -
day2 ARM处理器概论
指令能够指示处理器执行某种运算的命令称为指令(如加、减、乘 ...)指令在内存中以机器码(二进制)的方式存在每一条指令都对应一条汇编程序是指令的有序集合指令集处理器能识别的指令的集合称为指令集不同架构的处理器指令集不同指令集是处理器对开发者提供的接口。原创 2023-06-07 18:12:34 · 706 阅读 · 0 评论 -
day1 计算机硬件基础
一条指令的执行分为三个阶段CPU将PC寄存器中的地址发送给内存,内存将其地址中对应的指令返回到CPU中的指令寄存器(IR)译码器对IR中的指令进行识别,将指令(机器码)解析成具体的运算控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器每执行一条指令后PC的值会自动增加指向下一条指令。原创 2023-06-07 16:14:25 · 626 阅读 · 0 评论 -
day2 在线词典项目注册登录的实现
【代码】day2 在线词典项目注册登录的实现。原创 2023-06-01 22:06:52 · 273 阅读 · 0 评论 -
day1 在线词典项目介绍及框架搭建
用户信息历史记录存在数据库中。原创 2023-05-31 22:27:19 · 139 阅读 · 0 评论 -
TCP通信(复习)
要实现进程间的通信必备:IP地址、端口号、协议(TCP or UDP)原创 2023-05-30 22:57:46 · 477 阅读 · 0 评论 -
day 5 Makefile
1)工程管理器,顾名思义,是指管理较多的文件2)Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件的内容来执行大量的编译工作3)Make将只编译改动的代码文件,而不用完全编译。原创 2023-03-14 23:53:07 · 42 阅读 · 0 评论 -
day2 嵌入式数据库之sqlite3(下)
filename 数据库名称ppdb 数据库句柄成功为0 SQLITE_OK ,出错 错误码dp 操作数据库的指针;成功为0 SQLITE_OK;出错 错误码通过db句柄得到错误信息的描述执行一条sql语句db 数据库句柄sql 要执行的sql语句,例如创建表“create table stu(id int, ...)”callback 回调函数,只有sql语句为查询语句时,才传参。原创 2023-05-25 21:44:02 · 751 阅读 · 0 评论 -
day1 嵌入式数据库之sqlite3(上)
能够输入计算机并能被计算机程序。管理和控制之下,存放在。命令行完成数据库创建;原创 2023-05-24 21:26:27 · 608 阅读 · 0 评论 -
day12 实现自动云同步
【代码】day12 实现自动云同步。原创 2023-05-24 18:15:24 · 130 阅读 · 0 评论 -
day11 文件传输功能的实现
【代码】day11 文件传输功能的实现。原创 2023-05-24 16:55:38 · 40 阅读 · 0 评论 -
day10 TCP传输的特点
【代码】day10 TCP传输的特点。原创 2023-05-24 11:42:10 · 35 阅读 · 0 评论 -
day9 项目介绍及TCP的实现
1、什么是云同步?保持云端数据和终端数据的一致上传和下载实时同步定时同步手动同步。原创 2023-05-23 17:05:51 · 581 阅读 · 0 评论 -
day8 域名解析与http服务器实现原理
主机结构在 中定义如下结构的成员包括:h_name :主机的正式名称h_aliases:主机的备用名称数组,以 NULL 结尾指针h_addrtype:地址类型;(AF_INET或AF_INET6)h_length:地址的长度(以字节为单位)h_addr_list:指向主机网络地址的指针数组(按网络字节顺序),由 NULL 指针终止h_addr h_addr_list:中的第一个地址,以实现向后兼容性。原创 2023-05-22 22:16:19 · 507 阅读 · 0 评论 -
day7 原始套接字
【代码】day7 原始套接字。原创 2023-05-22 20:27:03 · 42 阅读 · 0 评论 -
day6 广播及实现
数据包发送方式只有一个接受方,称为单播如果同时发给局域网中的所有主机,称为广播只有用户数据报(使用UDP协议)套接字才能广播一个网络内主机号全为1的IP地址为广播地址发到该地址的数据包被所有的主机接收255.255.255.255在所有网段中都代表广播地址、原创 2023-05-22 18:31:29 · 537 阅读 · 0 评论 -
day5 套接字属性设置
SOL_SOCKET该级别的选项只作用于套接字本身SOL_LRLMP该级别的选项作用于IrDA协议IPPROTO_IP该级别的选项作用于IPv4协议该级别的选项作用于IPv6协议IPPROTO_RM该级别的选项作用于可靠的多播传输该级别的选项适用于流式套接字该级别的选项适用于数据报套接字。原创 2023-05-22 17:29:23 · 832 阅读 · 0 评论 -
day4 多路复用epoll函数族
*创建epoll句柄*///size参数实际上已经被弃用/*epoll句柄的控制接口*/epfd: epoll 专用的文件描述符,epoll_create()的返回值op: 表示动作,用三个宏来表示:EPOLL_CTL_ADD:注册新的 fd 到 epfd 中;EPOLL_CTL_MOD:修改已经注册的fd的监听事件;EPOLL_CTL_DEL:从 epfd 中删除一个 fd;fd: 需要监听的文件描述符event: 告诉内核要监听什么事件。原创 2023-05-22 16:11:30 · 769 阅读 · 0 评论 -
day3 多路复用poll函数
POLLIN:有数据可读POLLPRI:有紧急数据需要读取POLLOUT: 文件可写.....fds的个数;1、设置阻塞的事件(毫秒);2、0为非阻塞;3、负数为永久阻塞;原创 2023-05-22 14:50:12 · 964 阅读 · 0 评论