嵌入式开发–C语言基础12

学习目标:

嵌入式开发–C语言基础12


学习内容:

1.共用体
2.内存大小端
3.枚举类型
4.位运算
5.内存管理
6.链表


学习时间:

2024年5月6日


学习产出:

1.共用体定义:

union 公用名{
	数据类型1 成员变量1;
	数据类型2 成员变量2;
	数据类型3 成员变量3...
}

注意:形式上虽然与结构体类似,但结构体每个成员变量空间独立,共用体每个成员变量空间共享的

2.内存大小端

内存小端:内存低地址存放低数据位,内存高地址存放高数据位;
内存大端:内存低地址存放高数据位,内存高地址存放低数据位;

3.枚举类型:

enum 枚举类型名
{
	枚举常量1,
	枚举常量2,
	枚举常量3...
}

注意:
1.枚举变量的值在枚举常量中选择其一作为它的值
2.枚举常量默认为int类型,第一个枚举常量的值默认为0,后续枚举常量的值为前一个枚举常量的值+1

4.位运算:

&       按位与
|       按位或
^       按位异或           相同为0,相异为1
~       按位取反
>>      右移               右移n位 = 缩小, 数据 / 2^n
<<      左移               左移n位 = 放大, 数据 * 2^n

将字节中第n位置1:
num = num | (1 << n);

将字节中第n位置0:
num = num & ~(1 << n);

不使用中间变量实现两个变量值的交换:
a = a ^ b;
b = a ^ b;
a = a ^ b;

5.内存管理:

5.1.malloc

void *malloc(size_t size);
功能:
申请堆区空间
参数:
size:申请堆区空间的大小
返回值:
成功返回堆区空间首地址
失败返回NULL

2.free
void free(void *ptr);
功能:
释放堆区空间
参数:
ptr:堆区空间首地址
返回值:
缺省

6.链表

数组:
1.空间连续(访问数据方便、空间必须连续)
2.数组元素必须是有限
3.数组插入、删除元素效率低

链表:
1.空间不需要连续(访问数据麻烦、空间不需要连续,可以使用小的分散空间)
2.链表元素可以没有上限
3.链表插入、删除元素效率高

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值