嵌入式——C语言:内存管理、位运算符、构造数据类型(共用体、枚举)
一、共用体
1.共用体也称联合体,多用于函数传参使用
2.数据类型定义:
union 共用体{
数据类型1 成员变量1;
数据类型2 成员变量2;
数据类型3 成员变量3;...
};
3.共用体和结构体区别
3.1共用体每个成员变量的空间共享的
3.2结构体每个成员变量的空间是独立的
4.使用共用体判断内存大小端
4.1内存小端:低地址存低数据位
4.2内存大端:低地址存高数据位
二、枚举
1.枚举定义一些枚举常量
2.定义形式:
enum 枚举类型{
常量1,
常量2,
常量3,...
};
3.特性
3.1枚举常量均为int类型,且第一个枚举常量的默认值为0,后一个枚举常量为前一个值+1
3.2枚举常量定义时可直接赋值
三、位运算符
1.
运算符 | |
& | 按位与,与0得0 |
|| | 按位或,或1得1 |
^ | 按位异或,相同为0,相异为1。交换两个数 |
~ | 按位取反 |
<< | 左移,数据变大相当于*2的n次方 |
>> | 右移,让数据缩小等价于/2的n次方 |
2.优先级
移位运算符高于其余运算符:x = y >> n | m;
3.使用
3.1将一个数据第n位置1:num |= (1 << n) ;
3.2将一个数据某位置0: num &= ~(1<<n);
四、内存管理
1.堆区空间操作
1.1malloc函数:申请堆区空间,若申请成功返回申请堆区空间首地址,失败返回NULL
1.2free函数:释放申请的堆区空间
2.内存泄漏:只申请空间,使用完毕后,不释放空间,导致可用空间越来越少。