自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 LINUX-内核驱动

中断嵌套:当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另一个优先级比他还高的中断源请求,如果CPU能够暂停对原来的中断源的服务程序,转而去处理优先级更高的中断源请求,处理完以后,再回到低级中断服务程序,这样的过程称为中断嵌套。通常不能超过(6%)。中断:当中央处理机 CPU 正在处理某件事的时候外界发生了紧急事件请求,要求 CPU 暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。定时器:溢出一次,定时一次。

2025-09-08 09:17:05 941

原创 Linux-数据库

将复杂的数据结构简化为二维表格形式大型:Oracle、DB2中型:MySql、SQLServer小型:Sqlite。

2025-08-31 20:56:12 1834

原创 LINUX-网络编程-TCP-UDP

不同主机,进程间通信。

2025-08-30 17:16:21 2939

原创 liunx-树和二叉树

例如,对于根节点1,访问路径为:1(第1次经过,先序访问)→2(第1次经过,先序访问)→4(第1次经过,先序访问)→4(第2次经过,中序访问)→4(第3次经过,后序访问)→2(第2次经过,中序访问)→5(第1次经过,先序访问)→5(第2次经过,中序访问)→5(第3次经过,后序访问)→2(第3次经过,后序访问)→1(第2次经过,中序访问)→3(第1次经过,先序访问)→3(第2次经过,中序访问)→3(第3次经过,后序访问)→1(第3次经过,后序访问)。其中,A的左指针指向第一个孩子B,右指针为空;

2025-08-28 10:31:22 707

原创 C-JSON接口的使用

功能:获取 JSON 数组的元素个数。cJSON 的所有操作都围绕。

2025-08-25 22:45:01 533

原创 LINUX-文件操作

文件操作:一切皆文件。

2025-08-25 10:18:50 1062

原创 进程间通信-IPC机制

原因:进程间空间独立,无法直接通信,需要IPC机制实现通信同一主机进程间通信:1、古老的通信方式无名管道:可以用于同一主机,任意进程间通信有名管道:只能用于同一主机,具有亲缘关系的进程间通信(父子进程间)信号:进程间通知机制2、IPC对象通信system V共享内存:效率最高消息队列:信号量集(信号灯)主要同在不同主机进程间通信1、socket通信网络通信1.创建无名管道:pipe() pipefd[0] 读端 pipefd[1]:写端。

2025-08-22 10:02:58 1957

原创 LINUX-线程的学习

轻量级的进程,可实现多任务的并发。进程是操作系统资源分配的最小单位;线程是操作系统任务调度的最小单位。线程由某个进程创建。进程创建线程时,会为其分配独立的(8M)栈区空间;线程和所在进程,以及进程中的其他线程,共用进程的堆区、数据区、文本区。

2025-08-19 15:05:53 1067

原创 LINUX 进程的学习

多任务(并发):让系统具备同时处理过个任务的能力1.多进程2.多线程3.进程间通信。

2025-08-15 19:42:49 651

原创 数据结构-内核链表-栈—队列

这个关系称之为哈希函数。存储数据时,通过对应的哈希函数可以将数据映射到指定的存储位置;哈希存储:将要存储的数据的关键字和存储位置之间,建立起对应的关系,查找时,仍可通过该函数找到数据的存储位置。哈希表(散列表):提高数据的查找效率。

2025-08-06 21:55:28 157

原创 数据结构-双向链表

链表对象和节点的定义。双向链表的查找和修改。

2025-08-06 21:47:25 204

原创 C语言编译Makefile文件的使用

时间戳:在编译代码时,只编译修改后的源文件,其他没有修改的,只进行链接即可。依赖文件:main.c fun.c。2文件名Makefile或者makefile。L:指定使用到的库所在的位置。I : 指定头文件所在位置。目标文件:a.out。链接:处理多文件及函数的链接关系。汇编:将汇编指令生成二进制指令。编译:将源程序转换成汇编指令。预处理:处理和#相关的指令。

2025-08-06 21:36:13 265

原创 ubangtu虚拟机的网络配置,以及gcc中内存探测工具

ubantu 安装valgrind 终端输入:sudo apt-get install valgrind。2. 编辑-》虚拟网络编辑器-》更改设置-》VMnet0-->桥接--》桥接到PC正在上网的网卡上。使用指令:valgrind 可执行程序 例如:valgrind ./a.out。gnu提供的内存探测工具,可以用来监测内存错误和内存泄露。1. 虚拟机-》设置-》网络适配器-》桥接模式-》确定。--》应用--》确定。

2025-08-06 21:05:55 218

原创 linux开发-C语言数据结构学习

散列结构:(哈希结构)将数据的存储位置与数据元素之间的关键字建立起关系,根据该关系进行数据存储和插值。索引结构:将要存储的数据的关键字和存储位置之间构建索引表。树形结构:数据元素与元素之间存在一对多的关系(二叉树)链式结构:可以在内存中选用一段非连续的内存空间进行存储。顺序结构:在内存中选用一段连续的内存空间进行存储。2)物理结构:数据元素在计算机内存中的存储方式。图形结构:数据元素与元素之间多对多的关系。1)逻辑结构:数据元素与元素之间的关系。集合:元素与元素之间平等的集合关系。

2025-08-04 09:10:52 401

原创 C语言指针的学习

Memcpy copy函数。

2025-07-29 22:43:28 252

原创 Linux 开发-C语言指针的学习

在C语言中,指针是一种变量,用于存储内存地址。每个变量在内存中都有唯一的地址,指针通过保存这一地址实现对变量的间接访问。对于指针p p + n 仍未一个指针,指针地址为p + sizeof(n基类型)4、在两个或者多个具有包含关系的作用域中定义的同名标识符,外层标识符在内层不可见。作用域:局部作用域、全局作用域(全局作用域的变量未赋值,自动清零)2、在没有包含关系的两个不同作用域中定义的同名标识符,互不影响。数组名本质是首元素地址的常量指针,可通过指针算术访问数组元素。可访问或修改目标变量的值。

2025-07-28 22:52:09 434

原创 Linux开发C语言学习—预处理命令

宏定义是C语言预处理命令中最常用的功能之一,通过#define指令实现。对象式宏和函数式宏。// Windows平台专用代码// Linux平台专用代码#else// 其他平台代码#endif。

2025-07-27 23:22:26 284

原创 C语言函数的嵌套调用、递归调用

1. 函数未声明int main()foo();// 未声明或定义return 0;修正:在调用前声明或定义函数。2. 递归无终止条件// 无限递归修正:添加终止条件。3. 数组越界访问// 越界访问修正:确保索引在有效范围内。4. 参数类型不匹配int main()// 类型不匹配return 0;修正:传递与声明一致的类型。5. 返回值类型错误int func()// 返回字符串而非int修正:返回声明类型的值。6. 数组作为参数时长度丢失。

2025-07-24 23:23:53 372

原创 C语言函数的使用

函数声明告诉编译器函数的名称、返回类型和参数,而定义则包含具体的实现。// 函数声明// 函数定义。

2025-07-23 18:58:14 160

原创 C语言二维数组的使用,以及常见的错误类型

在C语言中,二维数组可以看作是一个行和列的表格结构。数据类型 数组名[行数][列数];

2025-07-23 18:51:17 342

原创 c语言字符数组的学习,以及常见编译错误

字符数组用于存储字符串或字符序列。显式初始化自动计算长度包含'\0'未初始化,后续需赋值。

2025-07-22 20:03:59 195

原创 c语言数组的使用(数组在寄存器中的存储方式),以及数组使用过程中常见错误

数据类型 数组名[数组长度];int arr[5];

2025-07-21 19:07:45 273

原创 C语言循环语句的使用(goto语句 while语句 do while语句 for语句)

goto语句允许程序跳转到代码中的指定标签位置,通常用于简化错误处理或退出多层循环。Goto 语句是一种控制流语句,允许程序无条件跳转到代码中的指定标签位置。其语法通常为,其中label是程序中的一个标记点。errorenderrorwhile循环是一种控制流语句,用于在条件为真时重复执行代码块。特点是 先判断表达式,再执行语句。

2025-07-20 20:34:53 848

原创 c 语言选择结构程序设计(if 语句,switch语句)

忘记break语句switch语句会继续执行下一个case的代码块,直到遇到break或结束。这种错误可能导致逻辑错误。case 1:// 漏掉 breakcase 2:break;case标签不是常量表达式case后的值必须是编译时常量,不能是变量或运行时计算的表达式。int y = 2;case y: // 错误:y 不是常量break;重复的case值同一个switch语句中不能有重复的case值。case 1: // 错误:重复的 case。

2025-07-18 20:43:26 524

原创 c语言输入输出函数的使用,及常见错误解析

我们发现运行警告,警告显示我们数据类型是长整型,0xffffffffffff占八个字节,然而Printf函数默认四个字节,也就是会发生高位截断,本来我们我们12个f但是现在输出结果是8个f ,由于是十六进制,也就是刚好四个字节。当我们使用这段语句的时候就会报错,原因就是%f表示的单精度,然而我们定义的是双精度,而我们&访问的是地址名而不是数据本身,所以并不知道数据是什么类型因此就会报错。类似于%d这种%后面加一个字母的成为格式字符,也叫占位符,也就是后面的参数,会按照顺序替代占位符。

2025-07-17 20:47:22 938

原创 学习C语言赋值运算常见错误类型

由于short型数据占两个字节,而int型占四个字节,所以short的数据赋值到int型数据中后会扩展没有数据的位置,例如 i = 0xffff,则发生扩展后的a = 0x0000ffff,扩展的是0还是1,取决于原来的数据的正负,因为对于寄存器来说,首位代表符号位,所以如果是正数,则符号位扩展的时候补0,如果是负数则符号位扩展补1,如果是无符号类型的数据进行符号位扩展,则补数据0;就是我们20 和 30都是整数,所以相除表达式是整形,所以运行结果是整形,不是浮点型,所以我们得到是整数部分0。

2025-07-17 12:32:13 925

原创 一个表格记住c语言中运算符的优先级

2025-07-16 23:24:33 110

原创 C语言中转义字符和字符常量的使用方法

观察运行结果我们发现前面八位一组,9加上八个空格为一组,后面的123不受到影响。在计算器上也就是相当于我们常用的tab键。同理 \xhh 表示的\x后面跟的一到两个十六进制字符,例如‘\x41’= A,因为65的十六进制为41。转义字符 \ddd使用方法,\后面跟上一到三位八进制字符,例如'\101'=A,因为A的。由运行结果我们可以知道\b退格也就是向前删掉几位。由训练结果可以发现789覆盖掉原来的123。ASCII位65 八进制位101。训练结果处输出一个\。

2025-07-16 20:00:41 275

原创 c语言浮点型数据如何存储在ARM中

阶码指的是化为二进制科学计数法时的阶数2^2中的后面的这个2为阶码,实际存储时需要将其加上127然后化为二进制,例如此时为2,那加上127位129化为二进制为1000 0001。将其连起来表示则为1100 0000 11000 1000 0000 0000 0000 0000。尾数则是二进制计数的1.001中去除首位的1,得到的001,然后不足23位,在其后面补0。例如 十进制6.25转换为二进制110.01 = 1.001*2^2。浮点型在寄存器存储的时候分为符号位 1位,阶码 8位,尾数23位。

2025-07-15 23:19:39 211

原创 c语言中数据类型在寄存器中的存储方式,以及数据类型最大最小值的推到过程

因此我们也可以知道整形数据取值范围,如果是符号整形,则最小值为1000 0000 0000 0000 0000 0000 0000 0000 化为二进制为-2147483648,注意计算具体数据的时候先求原码再计算,同理最大值为0111 1111 1111 1111 1111 1111 1111 1111因为首字母代表符号,所以最大值,首位为0,因此最大值化为十进制为21474833647。2)八进制整数,以0开始,表示八进制,如0123表示八进制123,换算为十进制则通过加权乘法即可。

2025-07-15 22:58:37 1115

空空如也

空空如也

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

TA关注的人

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