- 博客(13)
- 收藏
- 关注
原创 WAVE PCM音频文件格式
WAVE文件格式是微软RIFF规范中的一个子集,用于存储多媒体文件。RIFF文件开头有一个文件头,后面跟着一系列数据块。WAVE格式的文件开头除了"RIFF"块,还包含有两个子块,一个指定数据格式的"fmt"块和一个包含实际采样数据的"data"块。WAVE文件头除了上面的三个Chunk,还有一个额外可选Chunk - FACT Chunk。若存储的是PCM数据是不需要这个Chunk的,其他的压缩数据格式则需要有FACT Chunk。下文主要介绍PCM数据的WAVE文件。
2024-03-24 21:47:01
1446
1
原创 计算机网络基础
1.什么是计算机网络把分布在不同地理位置的计算机与专门的网络设备用通信线路互相连成一个规模大、功能强的系统,从而使众多计算机可以方便地互相传递信息、共享软件、硬件、数据信息等。 计算机网络就是由通信线路互相连接的许多自主工作的计算机构成的的集合,它是计算机技术和通信技术相结合的产物。2.计算机网络的功能数据通信、资源共享、提高系统的可靠性、分布式网络处理和负载均衡。3.计算机网络的组成•1、通信子网◦网卡:网络接口卡或网络适配器、它负责将数据发送网络中去,也负责从网络中获取数据。◦线缆、中
2021-09-22 22:27:07
332
原创 字符串的操作
对字符串操作: 标准库中的string.h函数几乎都是处理字符串的函数,常用的有: size_t strlen(const char *s); 功能:计算字符串的长度,不包含'\0'size_t str_len(const char* str){ assert(NULL != str); //断言,当str为NULL,会打印错误信息,并停止程序。需要头文件<assert.h> const char* tmp = str; while(*tmp) tmp++;
2021-08-22 22:30:37
115
原创 字符和字符串
字符:字符就是符号或图案,在C代码是以整数形式模拟的,当需要显示时再根据ASCII表中的对应关系显示出相应的符或图案。‘0’ 48 ‘A’ 65 ‘a’ 97 ‘\0’ 0int isalnum( int ch );功能:ch是数字或字母字符,函数返回非零值,否则返回零值int isalpha( int ch );功能:ch是字母字符,函数返回非零值,否则返回零值int isdigit( int ch );功能:ch是数字字符,函数返回非零值,否则返回零值int islower( int
2021-08-22 22:23:16
534
原创 指针的使用
指针是一种数据类型,使用它可以定义指针变量,这种变量里存储是整数,这种整数代表了内存的编号,每个整数对应一个字节,使用指针变量可以访问对应的内存,具体访问的多个字节由指针的类型决定。什么情况使用指针:从理论上讲指针可以访问任何位置的内存,但绝大部分的内存我们没有权限访问,因此非常容易产生段错误,因此建议只有合适的时候才使用指针。函数之间共享局部变量:由于全局变量浪费内存,还可能造成命名冲突,所有全局变量不适合大量共享。而函数传递默认是值传递,无法共享,所以指针是函数之间共享局部变量的最好选择。.
2021-08-19 19:35:39
190
原创 用链表实现队列
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define TYPE inttypedef struct Node{ TYPE data; //数据域 struct Node* next; //指针域}Node;Node* create_node(TYPE data){ Node* node = malloc(sizeof(Node)); node->data =
2021-08-01 22:18:11
112
原创 用链表实现栈
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define TYPE inttypedef struct Node{ TYPE data; //数据域 struct Node* next; //指针域}Node;typedef struct StackList{ Node* top; //栈顶指针 size_t cnt; //元素的个数}StackList;// 创
2021-08-01 22:00:49
84
原创 2021-08-01链表
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define TYPE int/*链表:由分布在内存不同位置的结点(元素),通过成员指针所连接起来的表结构,结点之间存在一对一关系。 优点: 对内存的要求不高,可以使用到小块内存 插入、删除方便 可以根据元素数量动态调整链表的长度,节约内存,还可以无限的添加元素。 缺点: 频繁的插入、删除结点可能会产生内在碎片 访问速度慢
2021-08-01 21:35:18
99
原创 数据结构(顺序表、栈、队列、链表)
顺序表结构:元素存储在一整块连续的内存中。优点:随机访问速度快可以用各种算法排序可以使用二分查找不容易产生内存碎片缺点:插入、删除元素麻烦对内存的要求高,需要一整块连续的内存栈:功能受限的表结构,只有一个端口进出元素(先进后出FILO)栈的应用:栈内存管理(函数调用)表达式解析队列:功能受限的表结构,有两个端口管理数据,一个端口只能进,另一个端口只能出(先进先出FIFO)链表:由分布在内存不同位置的结点(元素),通过成员指针所连接起来的表结构,结点之间存在一对一关系。优点:
2021-08-01 20:09:49
178
原创 教务系统校长功能
1、登录 login_adm2、能重置自己的密码 reset_adm3、能重置教师密码 reset_tch4、添加教师 add_tch5、删除教师 del_tch6、解锁老师 ulock_tch7、显示所有在职教师 list_tch8、显示所有离职教师 listdel_tchadmin.h#ifndef ADMIN_H#define ADMIN_Htypedef struct Admin{ char passwd[20];}Adm
2021-07-21 20:33:48
159
原创 Makefile
CC = gccFLAG = -Werror -WallOBJS = main.o test.o TARGE = aall:$(OBJS) $(CC) $(OBJS) -o $(TARGE) && ./$(TARGE)%.o:%.c $(CC) $(FLAG) -c $</*main.o:main.c test.h $(CC) $(FLAG) -c main.c*/clean: rm -rf *.h.gch rm -rf $(OBJS) $(TARGE)
2021-07-21 19:57:16
116
原创 2021-07-13文件操作
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-07-13 21:03:25
124
原创 如何提高C语言程序的可读性
1、一个说明或一个语句占一行2、函数体内的语句要有明显缩进,通常以按一下Tab键为一个缩进3、括号要一一对应4、代码中的所有符号均为英文半角符号5、局部变量的命名字母全部小写,全局变量的命名首字母大写6、标识符不能是C语言的关键字,命名时区分字母大小写,首字符不能是数字。最好使用对应功能的英文单词,方便理解功能7、避免与普通变量混淆,指针变量一般以p结尾,二级指针以pp结尾8、未初始化的指针变量默认值时随机的,也就是野指针,为了安全要初始化NULL9、在编写.
2021-07-10 16:56:12
1360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅