- 博客(20)
- 收藏
- 关注
原创 Linuk下minishell实现
exit ----------》退出minishell。1. 获取终端用户输入的命令,并输出相应的执行结果。2. 使用多文件方式实现,使用Makefile管理。
2024-07-17 09:17:58
303
原创 嵌入式学习(标准IO)
-- regular -- 普通文件 (分类:二进制文件:.jpg .bmp .mp4 a.out。p -- pipe -- 管道文件 --- 实现操作系统中 进程间的一些 信息交换(通信)l -- link -- 软连接文件 --- 类似windows的快捷方式。s -- socket -- 套接字文件 --- 网络的时候 (进程间的通信)c -- character -- 字符设备文件 --- 鼠标 (输入输出设备)
2024-02-21 19:36:12
677
原创 嵌入式学习第十八天
操作系统(windows,Ubuntu (linux) --发行版 centos // deepin,MacOs,移动。鸿蒙 (linux),android (linux,ios,Clinux)2.学习方式方法 (重点) --- 嵌入式(软件控制硬件)中学习的方式方法。/ /嵌入式的设备把计算机集成到一块芯片中 ---硅片system on chip。1.写程序--- 控制CPU ---控制CPU引脚上的状态变化(影响外围的电路)keil--编写51单片机控制程序的软件。1.摆正心态-- 清零。
2024-02-03 19:14:49
582
1
原创 嵌入式学习第十六天
'30-37':设置字体色 30: 黑 31: 红 32: 绿 33: 黄 34: 蓝 35: 紫 36: 深绿 37: 白色。'40-47':设置背景色 40: 黑 41: 红 42: 绿 43: 黄 44: 蓝 45: 紫 46: 深绿 47: 白色。/033[30m -- /033[37m 设置前景色。/033[40m -- /033[47m 设置背景色。/033[nA 光标上移n行。/033[nB 光标下移n行。/033[nC 光标右移n行。/033[nD 光标左移n行。printf函数高级用法。
2024-02-01 18:01:21
600
1
原创 嵌入式学习第十五天
由于频繁申请和释放,导致连续的空间分散成一些小的碎片空间,当malloc超过碎片空间时,则无法获得该空间(空间不连续),将这样的空间称为内存碎片。3.malloc需要和free搭配使用,如果只有malloc没有free会内存泄露。练习:要求申请堆区空间,将"hello world"存放到堆区空间,完成打印。2.一个空间只能被free一次,多次free程序会崩溃。size:申请堆区空间的大小。1.free只能释放堆区空间。程序中malloc的空间没有被释放。返回获得的空间的首地址。内存溢出也称为内存越界。
2024-01-31 19:38:32
694
原创 嵌入式学习第十四天
> 右移 右移n位 等价于 让该数 / 2^n。<< 左移 左移n位 等价于 让该数 * 2^n。1.枚举类型一般说明将来变量的值在给定的常量中选择其一作为它的值。2、找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均分。2.枚举常量的值总是前一个枚举常量的值+1,第一个默认为0值。3、找出平均分在90分以上或全部课程成绩在85分以上的学生。内存低地址存放低数据位。内存高地址存放高数据位。内存低地址存放高数据位。内存高地址存放低数据位。
2024-01-30 18:49:42
881
1
原创 嵌入式学习第十二天
指针数组主要用来操作字符串数组,通过将指针数组的每个元素存放字符串的首地址实现对多个字符串的操作。二维数组主要用来存储字符串数组,通过每行存储一个字符串,多行存储多个字符串所组成的数组。二维数组的数组名是指向数组第一行元素的数组指针。
2024-01-27 18:45:27
708
1
原创 嵌入式学习第十一天
定义一个数组指针变量,占8个字节空间,指针指向了一个int类型5个元素的数组。定义一个指针数组,数组占40个字节空间,每个元素为int *型,共5个元素。对数组指针*,值不变,类型降级成为指向数组第一个元素的指针。对一维数组数组名&,值不变,类型升级为数组指针类型。&a:获得数组的首地址,其类型为int (*)[5]数组的数组名a是指向数组第一个元素的一个指针常量。练习:封装一个函数MyStrcmp实现strcmp的功能。指针数组时数组,数组每个元素都是指针类型。数组指针是指针,指针指向一个数组。
2024-01-26 19:33:49
1111
1
原创 嵌入式学习第十天
使用指针变量等价于使用其内部存放的指针,所以我们有时也把指针变量简称为指针。实参地址传递给形参,形参就是实参的指针,可以通过对形参取*改变实参的值。3.指针变量:是一个变量, 变量里面存放了一个指针(地址), 称为指针变量,实参将值传递给形参,形参是实参的副本,形参改变不会影响实参。野指针:未经初始化的指针,指向已经被释放过空间的指针称为野指针。2.指针:指针就是地址,地址就是指针,指针多了指向的概念。空指针:NULL 0x0, 指向内存地址为0x0的指针。作为右值,直接取指针指向空间中的值。
2024-01-25 18:35:05
1136
原创 嵌入式学习第九天
实参将值拷贝一份给形参,形参是实参的副本,形参的值发生改变不会影响实参。数组传递时,函数体内部形参操作的数组和实参操作的数组为同一数组。2.编译时开辟空间,程序运行时加载该空间。2.可以将变量的作用域限定到本文件中。函数体内部想使用函数体外部变量值的时候使用复制传递。3.执行到超过变量作用域范围回收变量空间。变量从空间被开辟到被回收的整个过程称为生存周期。变量作用域默认为离定义该变量最近的大括号内。2.执行到变量定义时开辟空间。声明一个变量为外部存储的变量。全局变量:变量作用域在整个文件中。
2024-01-24 19:10:39
1372
1
原创 嵌入式学习第八天
3.函数调用时会发生实参向形参空间的拷贝,实参将值拷贝给形参(一一对应),实参类型与形参类型不一致时,将实参类型默认转换为形参类型。两个字符串比较,从左到右每个字符进行比较,不相同的字符,谁的ASCII码值大,字符串就大。函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2, ...)3.函数类型应该与返回值的类型一致,如果不一致以函数类型为准。如果第一个字符串 < 第二个字符串,结果为 < 0 的值。如果第一个字符串 > 第二个字符串,结果为 > 0 的值。1.第一个字符串要空间足够大。
2024-01-23 19:35:54
1049
1
原创 嵌入式学习第七天
/没有给定初值的元素,值为0值('\0')C语言没有字符串类型,也无法定义字符串变量,只能通过字符型数组,每个元素存放一个字符,最终存放字符串。1.strlen:获得字符串的长度(字符串开头到离开头最近的\0之间的字符个数,不包含\0字符)a = {1, 2, 3, 4, 5, 6};1.元素个数必须为常量或常量表达式,不能为变量或变量表达式。行能省略,列不能省略。
2024-01-22 18:41:43
1032
原创 嵌入式学习第六天
数组空间存放顺序有序,先存下标为0的元素,再存下标为1的元素, ...a[5] = {1, 2, 3, 4, 5};获得数组元素个数: sizeof(a) / sizeof(a[0])给定一部分元素的值,没有给定初值的元素,默认初始化为0。元素个数必须为常量或常量表达式,不能是变量或变量表达式。不给定数组元素个数,通过初值元素个数决定数组元素个数。1.从终端接收10个成绩,去掉最高分,去掉最低分,计算选手的最终平均分成绩。int a[n+2];int a[2+3];
2024-01-20 19:18:00
1057
原创 嵌入式学习第五天
60 - 69 及格。3.switch只与case后面的值比一次,如果相同则顺序向下执行,直到break或程序结束退出。1.从终端输入一个成绩,90 - 100之间打印 优秀。2.do while无论表达式是否成立都会先执行一次。里层switch结束后如果不加break,外层switch顺序向下执行。2.case后面必须为常量,不能是变量或表达式。1.do .. while后面要加;1.switch后面的表达式的值必须为整形。C:每次循环结束后都执行C。A:在循环前执行一次。
2024-01-19 19:12:12
1226
1
原创 嵌入式学习第四天
且设a = 5, b = 10, x = 3.5, y = 10.8, c1 = ’A’, c2 = ’B’。3.if和else不加括号,默认控制一句代码,为了保证程序不出错,设a,b为int型变量,x,y为float型变量,c1,c2为char型变量,2.gets可以接收带' '的字符串,scanf无法接收带' '的字符串。3.scanf除了%c形式外,均无法接收' '和'\n'字符。4.scanf中_%c可以接收非' '和'\n'字符。_%c 接收一个' '和'\n'的字符。
2024-01-18 18:41:22
969
1
原创 嵌入式学习第三天
2.利用putchar和getchar实现从终端接收一个小写字母,转换成其对应的大写形式输出。1.putchar只能打印一个字符,想打印多个字符需要多次调用putchar。从左到右依次执行表达式,并将最后一个逗号表达式的结果作为整体逗号表达式的结果。3.定义两个整形变量并对变量赋初值(初值为2位数),要求将两个数合并成一个新数并打印。小数据放入大空间:数据扩展,有符号数高位补符号位,无符号高位补0。"a":字符串常量,有2个字符'a' + '\0'定义两个变量可以是整形或者浮点数类型,对这两个变量赋值,
2024-01-17 19:15:06
1006
原创 嵌入式学习第二天
double 8个字节 -1.80*10^308 - 2.23*10^-308 1位符号位 + 11位指数位 + 52位尾数 2.23*10^-308 - 1.80*10^308。浮点数 -> 二进制形式 -> 科学计数法转换 -> 小数点后存入尾数位中 -> 指数位+偏移数(float:127 double:1023)以二进制形式存入指数位中。
2024-01-16 19:18:51
1225
1
原创 嵌入式学习第一天
3.重启:Ubuntu系统中点击"Power Off",再将虚拟机关闭,再重新启动虚拟机和Ubuntu系统。6.打开终端:ctrl + alt + t (一个窗口) ctrl + shift + t(多个窗口)拷贝目录文件:cp 源目录路径 目的路径 -rf。5.rm :删除普通文件(注:删除目录文件加 -rf选项)拷贝普通文件:cp 源文件路径 目的路径。ls -a:查看当前目录下所有文件(包括隐藏文件)5.窗口: 设置窗口大小,选择"查看" -> "立即适应客户机"mv 源文件路径 目的路径。
2024-01-15 19:50:30
546
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅