- 博客(21)
- 收藏
- 关注
原创 嵌入式学习之Makefile
2.Makefile会根据文件的时间戳(文件修改的时间)来决定工程内的文件是否需要重新编译。1.Makefile是一个工程管理工具,本质上就是一个文件,文件中存放的是代码编译规则。3.Makefile 是一种构建自动化工具的文件,用于管理和自动化软件构建过程。
2024-06-02 21:38:03 492
原创 嵌入式学习之c语言指针
例如,作为函数参数时,通常会使用 int (*)[4] 而不是 int (*)[3][4]。解引用一次,类型会少一个*,例如int** ptr降级后会成为 int*类型。取一次地址,类型会多一个*,例如int a升级后会成为int*类型。6.*p 的类型是 int*,即指向数组首元素的指针。类型:arr 的类型是 int (*)[4],而 &arr 的类型是 int (*)[3][4]。6.指针变量定义时可以给一个具体的指针,如果现在没有具体的值,那么将该指针指向null,占位。*号是和偏移前的pa结合。
2024-06-02 12:02:30 704
原创 嵌入式学习之构造类型
pragma pack(value) value=2^n次方(n=0,1,2,3,4) value=1 2 4 8 16 32。但是64为操作系统最多只能处理8个字节的数据,所以将默认对齐值设置为超过8,不生效。嵌套结构体的大小:结构体的对齐值为–》结构体中成员最大的对齐值。#pragma pack() //重置编译器的默认对齐值。可以使用#pragma pack指令来改变默认的对齐方式。
2024-06-01 22:12:21 739
原创 Linux一些操作技巧
功能:先将2.c中的内容清空,然后将1.c中的内容重定向到2.c中。cat 1.c > 2.c 将1.c中的内容打印2.c中。功能:2.c中原来的数据依然存在,将1.c中的内容追加到2.c后面。nano:使用 Ctrl+K 剪切,Ctrl+U 粘贴。ctlr+ shift + t 再开一个标签页。ctrl+ shift + e 水平分屏。ctrl + shift+ o 垂直分屏。,n跳转下一个,N上一个。
2024-05-27 14:50:46 617
原创 嵌入式学习日记
rwx rwx r-x ————》有权限的位置为1,无权限的位置为0 ————》111 111 101。注解:r:read 读权限 ————》4。x:execute 执行权限 ————》1。w:write 写权限 ————》2。-:无权限 ————》0。
2024-05-23 09:07:37 184
原创 嵌入式学习日常笔记
值得注意的是scanf的占位符%d,%s不会获取\n,空格,制表字符。8.sizeof 可以计算变量在内存中所占用空间的大小,以字节为单位。13.宏定义是在预处理进行,不做语法检查,只做简单替换。对于经常修改的值可以减少代码的替换量,可以放在的头文件。long int 4 byte 32位操作系统。从左往右依次计算,但是返回的是最后一个表达式的值。同真为真,只有当条件1为真时,才会去执行条件2。整型的有符号数和无符号数计算,结果为无符号数。格式: 判断条件?范例: putchar(‘a’);
2024-05-21 09:04:29 125
原创 嵌入式学习日记days3
4.如果函数在一个C文件中定义(即包含函数体),并且该函数没有被标记为 static,那么可以通过在其他C文件中包含该函数的声明来访问该函数。这意味着它在程序第一次调用该函数时被初始化,并且在后续调用中保留其值,不会被重新初始化,且默认初始化为0。静态全局变量是在文件范围内声明的,但使用static关键字将它们的作用域限制在声明的源文件内。静态局部变量是在函数体内部声明的,它们的生命周期贯穿程序的整个执行过程,但作用域仅限于该函数内部,因此只能被该函数内部的操作所访问。静态全局变量不能在其他文件中访问。
2024-05-21 09:04:03 150
原创 嵌入式学习第二天
在地址传递中,实参的地址被复制到形参中,因此形参实际上是指向实参的指针。形参和实参占用独立的存储单元,但形参指向的地址是实参的地址,因此通过形参修改值会影响实参。在值传递中,实参的值被复制到形参中,因此实参和形参占用不同的存储单元。5.在C语言中,实参和与其对应的形参是否占用独立的存储单元,取决于传递参数的方式,即值传递或地址传递。4.sizeof函数的运用,可以根据计算机的不同导致的int类型不同得出不同的结果,适合移植。示例:strcpy(str1,str2),将str1中的内容换成str2中的内。
2024-05-20 09:04:36 106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人