嵌入式day17

avatar
作者
猴君
阅读量:0

尾插:

头删:

尾删:

双向链表:

循环链表:

内存泄漏(malloc 调用的节点需要手动清除)

清除:

头删效率更高,算法复杂度更低

共用体

共用体的成员,会共同占用相同的内存空间

共用相同的内存空间(最大的),有效的为最后输入的字节

为了节省空间

共用体的覆盖总是向前顶,所以成员地址都相同

利用共用体,判断计算机的大小端

判断IP地址:

共用体的变量可以作为函数参数传递,通过指针传参

共用体也要遵循对齐原则

枚举类型

如果一个变量只有几种可能,则可以定义为枚举类型

week 可能的取值为定义的枚举型常量

枚举的常量可以自己定义

本质为int ,排列和数组类似

用typedef定义类型

INT变成类型名

为已有的数据类型起别名

a为整型一维数组

位运算

按位与:指定位 清零

32灯全亮 --第3个灯灭

所有位运算要求数据类型为整型或与整型相兼容的

按位或:指定位 置1,其他位不变

按位异或:指定位 翻转

两个比特位相同,结果为0,不同为1

不使用中间变量,交换两数:

连续两次异或同一个数,还是数本身

按位取反:(单目运算符)

左移:

逻辑左移,抛掉最高位,补0

判断某个比特位是0还是1

计算1的个数:

右移:

算数右移:有符号类型,最后一位移出去后,前面有可能补0(i 为正数),也有可能补1(i 为负数)

逻辑右移:无符号类型,最后一位移出去后,前面补0

建议编写参与位运算的数据类型时,标明是否有符号,即加signed 或 unsigned

------------------

嵌入式学习第十七天,今天c语言全部结束,做了个小测试发现自己c语言方面的还是有许多欠佳的地方,很多东西的概念都不是很清晰,全都是一知半解的,所以很多题目没有头绪,还有就是各种常用的算法记忆也不是特别牢固。所以后面的学习还是要经常回过头来复习c语言方面的知识,多想多练,后面继续加油吧

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!