自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 linux中断应用

1、确定中断号3、在中断处理函数里(1)分辨中断(2)处理中断(3)清除中断。

2023-08-18 22:24:01 275

原创 QT如何打包

windeployqt.exe打包工具

2023-08-17 23:54:53 749

原创 浅谈iic时序

一文带你搞懂iic时序问题,从此手写时序不是梦

2023-06-10 14:59:41 1902

原创 环形缓冲区(c语言)

C语言环形缓冲区

2023-02-28 22:23:58 859 1

原创 如何在shell脚本中使用环境变量的值

在shell脚本中使用环境变量的值

2022-12-29 19:50:29 2059 2

原创 TCP粘包问题

TCP沾包

2022-09-14 20:52:02 647

原创 线程同步的实现

互斥锁实现多线程,用一个窗口售票的案例

2022-09-13 19:36:26 273

原创 linux下的线程thread

线程的创建使用

2022-09-11 16:48:32 1297 5

原创 计算机程序内存分布

计算机中有两种存储器,RAM和ROMram内存分为5个区

2022-09-10 15:14:17 956

原创 编译器的差别gcc和VS

在一个循环体之中gcc编译器 i++ 在遇到 '=' 符号时,会先增,而不是在一趟循环结束后再自增的而VS编译器,是在一趟循环结束后才会i++的这应该是gcc编译器对此做出了自己的优化

2022-09-08 10:31:35 4009 3

原创 虚函数表和虚函数指针

虚函数表和虚函数指针

2022-09-06 19:09:02 1839

原创 直接插入法排序

直插法排序

2022-09-05 09:49:11 681 3

原创 C++类型转换操作符

static_cast、dynamic_cast、const_cast、reinterpret_cast四种C++的类型转换

2022-09-04 10:01:41 816

原创 在构造函数中使用虚函数可以实现多态吗?

构造函数中调用虚函数为什么不能实现多态?为什么要使用虚析构?内存泄漏

2022-09-03 15:29:19 273

原创 字节对齐(结构体)

sizeof(结构体),字节对齐,结构体内存分配规则

2022-09-01 20:13:28 507

原创 用联合体(union)判断大小端

利用联合体的特点巧妙的实现大小端判断

2022-08-28 17:02:57 2380

原创 const

const是一个限定符,被const限定的变量其值不会被改变。

2022-08-28 16:37:55 278

原创 推挽输出&&开漏输出

在学习STM32的时候,我发现了一个很值得研究学习的问题,下面,用我的理解来阐述一遍,这其中的原理。

2022-08-25 20:30:21 9298 5

原创 STM32的启动流程

本文主要介绍,STM32从 CPU 上电复位执行第 1 条指令开始(汇编文件)到进入 C 程序 main()函数入口之间的那个部分。

2022-08-24 20:51:03 6283 1

原创 Linux驱动----mmap系统调用

mmap的概念及案例使用方法

2022-08-19 23:57:56 789

原创 gcc的编译流程

gcc的编译流程关于头文件#include与#include" "

2022-08-14 17:06:39 403

原创 linux驱动----模块符号导出使用

本文介绍一种,一个模块调动另一个模块中定义的函数的方法

2022-08-13 19:42:03 1319

原创 linux驱动----内核模块

一、引言我们往往需要对内核的大小进行控制,内核的设计遵循的是越小越好原则,当然,Linux有提供这么一种使用模块的机制,在可以实现内核功能的同时,还能控制内核大小。二、模块的特点1、可实现动态的扩展内核,并动态的从内核中移除2、模块本身不被编译进入内核,因此可以控制内核大小3、模块在加载后,就和内核中的其他部分没什么差别三、模块程序的构成。......

2022-08-12 22:17:52 664

原创 守护进程的创建

在Linux的操作系统下,进程分别有三种,本文主要探讨这三种中的守护进程。

2022-08-09 15:51:25 455

原创 Linux网络编程

socket、bind、listen、accept、send、recv、connectTCP客户端的搭建流程及代码TCP客户端的搭建流程及代码非阻塞的循环服务器(利用fcntl函数)并发服务器的搭建多进程并发服务器多线程并发服务器IO多路复用的并发服务器.........

2022-08-07 17:18:02 898

原创 ARM基础知识点笔记

存储器ARM指令流水线ARM处理器的分支ARM内核工作状态ARM指令集特点寄存器ARM条件助记符指令机器码合法立即数ldr汇编指令b/bl指令

2022-07-31 16:04:09 953 1

原创 图书馆管理系统(C、数据结构、哈希表、文件IO)

图书馆管理系统,技术路线,数据结构、哈希表、文件IO

2022-07-31 10:07:31 3211 3

原创 初学ARM的个人心得

判断寄存器某一位上的值数据的移位操作volatile关键字一种调用寄存器极其方便的宏的写法

2022-07-30 16:51:12 828

原创 c++点餐系统(C++、多态、sqlite数据库)

技术路线效果展示程序主体main.cpp技术路线C++、sqlite3数据库、多态(动态)通过该程序,使用者可学习C++中的动态多态的使用,以及C++对sqlite3数据库的封装、调用。使用C++程序设计,使用C++程序调用sqlite3数据库,并通过数据库的操作对菜单进行管理,包括菜单中菜品的增删改查,还通过数据库对订单总金额进行统计,每次顾客购买后都会实时对数据库中的销售金额进行实时的更新。...

2022-07-29 19:24:55 4836

原创 vs2017下配置sqlite3环境

在vs2017环境下配置sqlite3数据库文件

2022-07-29 18:58:20 686 2

原创 QT程序设计多人聊天室(基于QT、sqlite3、TCP/IP)

基于QT、sqlite3、TCP/IP的多人聊天室

2022-07-20 20:46:11 5490 26

原创 QT页面跳转的实现

使用信号和槽,程序实现QT中的界面跳转

2022-07-16 11:21:04 2946

原创 wait函数

我们应当知道的是,在用fork创建子进程后,父子进程的执行的先后顺序是不定的,这时,我们可以用wait函数,wait()会暂停当前进程的执行,直到有信号到来或者子进程结束。可以看出的是,在正常结束的情况下,程序在父进程中,WIFEXITED(status)的判断为正常终止,并通过WEXITSTATUS(status)返回了子进程的退出状态。③如果status不为空,wait函数会将子进程退出的状态存入status中,另外,子进程退出时的状态可以通过linux中的特定的宏(macro)来进一步测定退出状态。.

2022-06-05 19:24:48 8264 1

原创 如何创建一个子进程

首先,这两个函数都是用于创建一个子进程如果要辨析fork与vfork,一句话通俗的说,fork是复制于父进程、vfork是共享于父进程详细如下:fork函数复制一个父进程的副本,从而拥有独立的代码段,数据段以及堆栈,既称为一个独立的实体,而vfork是共享父进进程的代码以及数据段。并且,fork在执行父子进程的顺序是随机的,而vfork在执行父子进程时,一定是先执行子进程,再执行父进程首先来看fork拿fork举一个例子: 注意看a的值的输出,运行结果如下: 分析:我们在创建一个子进程之前定义了一个变

2022-06-03 16:20:26 1553

原创 用指针和malloc创建一个数组

malloc作为一个包含在<stdlib.h>头文件下的函数,用于申请空间。我们平常定义数组一般习惯性的就直接定义,比如int a[5],此处就是直接定义了一个数组,数组内的元素都是int型,并且有五个,从一开始就确定了数组a的大小,并且无法被改变。并且变量被存放在栈区,栈区的变量都是有系统自己开辟空间存储,自动销毁空间释放的。其实,还有一种定义数组的方式,那就是借助人为申请空间的方式定义一个数组。请看如下程序:#include<stdio.h>#include&lt

2022-05-28 15:01:59 1103

原创 文件IO及其函数使用

文件IO个函数:open函数、close函数、read函数、write函数。利用文件IO各函数功能,模拟虚拟机命令CP,实现文本复制,附有详细代码

2022-05-15 16:40:31 406

原创 标准IO及其各函数用法

标准IO各函数:fgetc函数、fputc函数、fgets函数、fputs函数、fread函数、fwrite函数、fopen函数、fclose函数、perror函数、fseek函数、ftell函数、rewind函数利用标准IO的读写操作,完成文本复制,模拟了虚拟机CP命令,附有详细代码展示

2022-05-15 16:28:27 1783

原创 数组指针的使用方法

数组指针与指针数组、数组指针的用法、字符串排序输出(代码实例)

2022-05-04 17:19:57 24768 14

原创 二维数组的探究

二维数组的地址表示、指针访问二维数组值的方法

2022-05-01 15:26:13 187

原创 C语言知识细节点(二)

数据类型转换、各类运算符、截断法则、输入输出函数、scanf和gets的区别、scanf和gets辨析

2022-04-25 19:11:20 1280

基于QT程序设计的多人聊天室

通过次程序代码,可以学习如何使用纯代码设计界面(非UI),了解如何通过QT调用sqlite数据库,以及如何使用TCP/IP协议简单地搭建客户端与服务端。 此项目中的界面主要做的有两个,一个登录界面,一个聊天消息收发界面,登录界面有登录和注册,通过创建数据库,调用数据库中的数据进行判断,程序实现对数据库中的资源进行增删改查。在界面跳转方面,通过QT独有的信号和槽机制,进行设计,此项目主要在登录界面和消息交互界面设计了界面的跳转。至于客户端和服务端的搭建,是本项目主要需要实现的地方,通过ip地址和端口号,进行,各个客户端之间的通信,数据先通过客户端发往服务端,再由服务端发往客户端,可以实现多个客户端的并发通信,只需要将服务端开启即可。

2022-07-31

基于C++的点餐系统设计

通过该程序,使用者可学习C++中的动态多态的使用,以及C++对sqlite3数据库的封装、调用。 使用C++程序设计,使用C++程序调用sqlite3数据库,并通过数据库的操作对菜单进行管理,包括菜单中菜品的增删改查,还通过数据库对订单总金额进行统计,每次顾客购买后都会实时对数据库中的销售金额进行实时的更新。 程序入口分为两个,一个是管理员入口(需要密码才能进入)管理员可以对菜单进行增删改查的操作,并且可以进行查看销售额。另一个入口是顾客入口,顾客进入无需密码,顾客可以查看菜单,并进行所需菜品的购买,购买的时候订单又被分为了两类,一类是堂食订单,一类是外卖订单,此处通过一个订单基类,派生出两个订单子类,并在此处使用了动态多态,进行对订单价格的计算,显示给顾客。除此之外,顾客还需填写配送信息或者座位信息等,生动形象得模拟了当下我们在现实生活中点餐的场景。

2022-07-31

基于哈希表的图书馆管理系统(数据结构)

主要用到数据结构中的哈希表,使用文件IO的操作设计了一个图书管理系统,系统分为分有一个主界面和多个子界面,实现后的效果可以界面切换自如,子界面中设计有学生入口以及老师入口,分别模拟不同的操作,功能都是结合实际设计的,实现的功能有,图书的入库、出库、图书的查询(编号查询、书名查询)、借书系统和还书系统。 程序以工程的形式分文件夹创建,代码整齐,注释较多,适合学习。 我所运行的环境是Linux下的Debian,因为是写的C的缘故,把代码复试到Windows下的编译器,应当也是可以使用的。

2022-05-26

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除