嵌入式Linux学习DAY17

链表删除

头删

free函数:free(void 空间名):空间必须是malloc申请的空间,作用是放弃malloc申请的空间的占有权。

头删步骤:

1.P指针变量指向首节点

2.断开链表

head->next=p->next;

3.释放p所在节点

free(p);

位运算

&:一假则假

|:一真则真

~:非

^:(异或)同则0,异则1,可用于加密

<<:(左移) 数值左移位数:int a=0x33,a<<1;由0011 0011变为0 0110 0110 //左移一位相当于乘以 2

>>:(右移)数值右移位数: 右移一位数后,数字消失,前方补充数值,补充时看数据类型,有符号则最高位补符号位,无符号数据则补0.

软件控制硬件---编程->cpu->寄存器(位)->硬件

在C语言上通过位运算来控制寄存器

预处理

.c->可执行文件的过程

预处理:gcc -E file.c -o file.i

编译:gcc -S file.c -o file.s

汇编:gcc -c file.c -o file.o

宏定义:

#define 宏名 宏值 表示定义了一个 宏,出现宏名的地方都会被宏值替换(打印的值和宏名相同时不会被替换) 宏名一般大写

作用为:在代码中用到宏值的地方都可以用宏名替代

预处理阶段:进行文本的原样替换

结束宏定义:#undef 宏名

宏的副作用:可能干扰计算顺序,如定义算式时,可能导致算式中的运算符号的优先级与预期的不同。

宏函数

定义简单的功能 #define 带参数的符号 具体功能

头文件" ",与<>的区别

<>//到系统默认的路径下找对应的文件----/usr/include

""//在默认地址找,若没找到,则到系统指定目录去找

条件编译:

1.#if 0

......

#endif //起注释作用,或者条件判断

2.防止重复定义头文件 //另开一个为.h结尾的以头文件命名的文件

#ifndef 大写头文件名

#define 大写头文件名

头文件功能

#endif

错题集

4.其中10与4是整型,所以x为2,又因为x为float型,所以显示2.0

5.^的优先级小于<<

9.==的优先级大于--与++,注意先用后加以及先加后用

13.对于数组来说,输入不用取地址,因为数组本身就是地址

22.*p+1为c,c值加1即为d

相关推荐
●VON22 分钟前
Flutter for OpenHarmony 21天训练营 Day03 总结:从学习到输出,迈出原创第一步
学习·flutter·openharmony·布局·技术
香芋Yu39 分钟前
【大模型教程——第四部分:大模型应用开发】第1章:提示工程与上下文学习 (Prompt Engineering & ICL)
学习·prompt
LYS_061844 分钟前
寒假学习10(HAL库1+模数电10)
学习
runningshark1 小时前
【项目】示波器学习与制作
学习
€8111 小时前
Java入门级教程24——Vert.x的学习
java·开发语言·学习·thymeleaf·数据库操作·vert.x的路由处理机制·datadex实战
自可乐1 小时前
n8n全面学习教程:从入门到精通的自动化工作流引擎实践指南
运维·人工智能·学习·自动化
深蓝海拓2 小时前
PySide6从0开始学习的笔记(二十六) 重写Qt窗口对象的事件(QEvent)处理方法
笔记·python·qt·学习·pyqt
星火开发设计3 小时前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
BackCatK Chen4 小时前
第 1 篇:软件视角扫盲|TMC2240 软件核心特性 + 学习路径(附工具清单)
c语言·stm32·单片机·学习·电机驱动·保姆级教程·tmc2240
深蓝海拓4 小时前
PySide6从0开始学习的笔记(二十五) Qt窗口对象的生命周期和及时销毁
笔记·python·qt·学习·pyqt