- 博客(27)
- 收藏
- 关注
原创 单片机—中断系统
为使得CPU具有对外界紧急事件的实时处理能力而设置的,当CPU正在处理某些事的时候,当外界紧急事件请求,CPU会停止当前的事情,先去处理紧急的事件,处理结束后,在返回处理当前事件,这个过程叫做中断,实现这中功能的部件叫做中断系统。向CPU发出中断请求的请求源就是中断源中断向量是中断服务(处理)程序的入口地址存储中断服务(处理)程序地址的表格。
2025-03-14 22:14:03
712
原创 在线商城服务器
解析 POST 请求内容(如表单提交),支持简单数据库查询(示例中未完全实现)开发的轻量级 HTTP 服务器,旨在实现基本的静态文件服务和简单的动态请求处理。1、如何根据客户端发送的请求,发送给客户的需要的数据。| - 创建 socket || ├── GET 请求处理 || └── POST 请求处理 || - 监听连接 (listen) || └── 数据库查询 |
2025-03-12 22:17:05
893
原创 Linux系统下基于mplayer媒体播放器
基于MPlayer构建一个轻量级的Linux媒体播放器,提供简洁的用户界面及增强的播放功能。控制功能:实现播放、暂停、停止、快进、上一首,下一首,多种播放模式等控制。通过定义全局变量,我定义了结构体指针(结构体存放的链表节点,文件路径),控制Mplayer播放器,通过管道连接,创建子进程(播放器需要单独执行),向管道发送。随着多媒体技术的发展,各种音视频格式的流行,用户对媒体播放器的功能和性能要求。2、如何做到模式的循环播放,随机播放等,只可以播放一个文件就结束这个问题。执行mplayer的子进程。
2025-02-28 22:29:54
420
原创 Linux-IO编程
stdout:标准输出流,向终端打印数据,puts,printf,putchar都是依赖stdout实现。stdin:标准输入流,从终端接收数据,getc,scanf,getchar都是依赖stdin实现。应用场景:与终端建立的缓存均为行缓存,stdin,stdout都是行缓存。全缓存:缓存区满刷新,程序结束或者调用fclose刷新,fflush刷新,缓存区大小。行缓存:遇到\n刷新,程序结束或者调用fclose刷新,fflush刷新,缓存区大小。应用场景:与文件建立的缓存均为全缓存。
2025-02-18 21:05:23
936
原创 段错误的调试方法
在可能出现段错误的代码进行打印,如果前一处可以打印,后面打印不。释放内存后,如果继续访问已释放的指针,或者多次释放同一块内存,都会导致段错误。访问数组时,如果索引超出数组的合法范围,可能会访问到非法内存,导致段错误。进行错误的指针运算时,可能导致指针指向非法内存区域,从而引发段错误。将指针强制转换为错误的类型,可能会导致非法访问内存,从而产生段错误。指针在未初始化、指向非法内存或已释放的内存时使用,会导致段错误。递归函数没有合适的终止条件时,会导致栈溢出,进而发生段错误。)指向的内存时,会引发段错误。
2025-02-12 10:37:07
672
原创 C语言-内存泄漏
(工程文件可以把改代码放在makefile文件里,设置伪目标):在分配内存后,指针被修改或丢失,导致无法访问到原始内存块。:在分配新内存之前未释放旧内存,造成内存泄露。:程序完成使用动态分配的内存后,忘记调用。
2025-02-07 20:11:44
313
原创 数据结构-基础
是指存储、组织数据的方式,以便高效地进行访问和修改。顺序存储,链式存储,索引存储,散列存储。线性结构(表),非线性结构(树,图)可读性,稳定性,扩展性,时间复杂度,空间复杂度。b 行号/函数名 设置断点。p 变量名 查看变量内容。3、fun.h : 工程程序代码头文件。1、main.c :主函数程序代码。s 进入函数内部调试。2、fun.c :功能程序代码。n 单步执行。l 查看代码。r 运行代码。
2025-02-06 22:12:31
906
原创 C语言-内存管理
栈和堆是内存管理中不可或缺的部分,各自适用于不同的场景。栈适合用于存储临时数据,速度快且管理简单,而堆适合存储大量不确定大小的动态数据,虽然需要更多的管理工作。了解它们的区别对于优化程序性能和避免内存问题至关重要。
2025-01-23 19:53:49
946
原创 C语言-构造数据类型
结构体变量只能存储在内存地址为自身基本类型长度整数倍的内存单元。结构体是一个自定义的复合数据类型,它允许将不同类型的数据组合在一起。结构体整形的大小必须为最大类型长度的整数倍。结构体访问成员变量最终类型由成员变量决定。结构体指针访问成员变量: —>结构体变量访问成员变量: .结构体、共用体、枚举。2、结构体变量的定义。4、结构体元素的访问。
2025-01-22 19:58:20
566
原创 C语言-递归
递归是一个函数直接或间接调用自身的编程技术。递归主要用于将复杂的问题分解为较小的、相同类型的子问题。递归的关键是通过不断缩小问题的规模,直到遇到一个最简单、最基础的情况(基本情况),从而停止递归。
2025-01-19 09:35:09
234
原创 C语言-预处理命令
1、带参宏只是代码的替换,没有函数调用,传参,返回的过程,执行效率高。4、函数时程序运行时加载到程序中,带参宏时程序编译时加载到程序中。宏只是代码的替换,中间不会有任何数据计算的操作。5、函数的调用,传参,返回的过程,资源开销大。用于取消之前定义的宏,使其在后续代码中无效。成预处理后的代码文件(仅预处理源文件,生成预处理结果(即展开宏和包含文件)。仅编译源代码文件,而不进行链接,生成目标文件(开头的预处理指令处理宏定义、文件包含、条件编译等,生。:将目标文件与库文件链接,生成最终的可执行文件(如。
2025-01-18 21:46:52
750
原创 C语言 - 函数
函数类型函数名(数据类型1形参1,数据类型2形参2,...)语句块;return返回值;函数类型:函数运行结果的类型,如果不写默认为int类型,如果运行不想有运行结果的的类型可以为void类型//两数相加的函数return0;//函数名:与变量名的要求保持一致//形参:定义时表示对数据的处理方式//返回值:函数运行的结果注意:1、返回值类型与函数类型不一致,将返回值强制转化为函数类型2、如果实参类型和形参不同,会将实参类型转换为形参类型之后传入函数内部。
2025-01-17 18:46:56
1286
原创 C语言-字符型数组
char 数组名[元素个数];(元素个数必须常量,元素个数要能够存放下整个字符串,包含末尾为\0的字符)//定义一个数组大小为32的数组。
2025-01-15 20:00:04
733
原创 C语言代码题:有评委对选手进行打分,分数为整数,接收数据为-1的时候结束,去掉一个最高分,去掉一个最低分,计算平均分
另外一个可实现的思路,把-1 接受入数组,len的长度不达到-1的长度。我的处理方法是,用中间值接收,判断中间值不为-1,才接收数组。在whlie 循环中,设置一个计数器。
2025-01-15 10:23:57
234
原创 C语言 - 一维数组
如果它们的顺序错误(前面的元素大于后面的元素),则交换它们。从数组的第一个元素开始,找到最小的元素。位置(顺序错误:前面的元素大于后面的元素),最终实现从小到大排序。从数组的第一个元素开始,依次比较相邻的两个元素。数组的元素下标的范围为从0开始,元素 - 1结束,访问之外的元素会产生内存越界。相同类型n个元素的有限集合(数组类型必须相同,元素个数必须有限个):通过每次遍历数组,找出最小或最大的元素,并将其与当前未排序部分的第一个。:重复地遍历待排序的数组,比较相邻元素,并在它们的顺序错误时交换它们的。
2025-01-14 19:45:18
561
原创 C语言-循环结构
先执行循环体,然后再检查条件。这意味着循环体至少会执行一次。循环用于在知道循环次数的情况下使用。三个部分:初始化、条件判断和更新。循环在执行之前检查条件。如果条件为真,循环体会继续执行,直到条件为假。跳转语句,它用于无条件跳转到程序中的另一个位置(标签位置)跳出当前循环或者switch分支,结束循环。结束本次循环进入下一次循环。
2025-01-13 19:18:43
413
原创 C语言分支结构
switch后面的值只与case后面的值比较一遍,然后顺序向下运行直到遇到break或者swi。if 可以单独脱离else使用,else不可以单独使用。if 可以不加括号默认只能控制一行代码,最好加上{}if 后面必须加条件,else后面不可以加条件。逻辑表达式:有逻辑运算符连接起来的式子。(逻辑表达式的值只有真 、假)switch后面的表达式必须是整形,不能为浮点型。程序代码从mian函数的第一句运行,直到main函数结束。表达式1 :表达式2。case后面不可以跟变量。通过不同的条件执行不同的代码块。
2025-01-12 19:29:14
494
原创 C语言基础
注意:赋值是内存空间的拷贝,大小一样直接拷贝,小数据放入大数据(补符号位,整数。补0,负数补1),大数据放入小数据(直接截取数据低位),浮点数类型赋值给整形(putchar函数:向终端输出一个字符(只能输出字符,并且只能输出一个字符)i-- :先用后减 --i :先减后用。i++ :先用后加 ++i :先假后用。getchar函数:从终端接收一个字符串(只能接收字符,并且只能一个)scanf函数:从键盘读取格式化的输入并存储到变量中。右值:常量,表达式,变量等。
2025-01-11 20:22:48
686
2
原创 C语言基础
程序会存储在外存(读取速度慢,断电不会丢失文件)中,当运行的时候,系统会把程序读 取到内存(读取速度快,断电丢失文件)中,根据程序的内容和cpu协同完成对数据的操做。字母: 'A' 'c' '\n' '\t' '\v' '\b' '\a' '\r'等等。123 123u或者123U(无符号) 123L或者123l(长整形)(变量定义的时候没有初始化,变量中为随机值)负数以补码的形式存储,正数的补码为该数的二进制形式,负数的补码需要计算原码 -->反码。
2025-01-10 19:59:07
1059
1
原创 Linux基础
mkdir命令:创建空目录文件(注意:Linux文件名不允许存在空格,空格用_代替。1、vim text.c (文件.c为后缀),使用vim 打开text.c文件。注意(errror报错:语法出现错误,warning:警告(可能出现错误))编码出现的问题:代码\n 更改之后,必须重新编译的到新的编译文件,才是更改后的代码运行程序。普通用户:可以多个,也可以一个没有,名字无限制,家目录在/home/用户名。rmdir命令:删除空目录文件(如果目录文件不为空,使用命令错误)白色文件:普通文件(文本文件)
2025-01-09 20:08:12
1099
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人