0
点赞
收藏
分享

微信扫一扫

位段,枚举,联合(共用体)

夹胡碰 2023-07-02 阅读 32

一、位段

1.位段简介

位段,枚举,联合(共用体)_枚举

2.位段形式

struct A {
	int a : 3;
	int b : 4;
	int c : 10;
	int d : 30;
}A1;

与结构体类似,区别在于位段把结构体的 “=” 换为 “:”, “:”之后的数字代表该变量占用的二进制位数(位段中的位即二进制位)

3.位段的大小

int main() {
	printf("%d", sizeof(A1)); //8
	return 0;
}

本应占47个比特位,但由于int型的位段以4个字节开辟空间,所以最终大小为8字节

4.位段的内存分配

位段,枚举,联合(共用体)_枚举_02

为什么在一个字节内从高地址向低地址分配?(a在b的左边)

(1)与字节序无关,字节序是在一个数据内字节之间的排列顺序,而不是字节本身内部的比特位排列顺序

(2)与编译器的种类有关

5.位段的跨平台问题

位段,枚举,联合(共用体)_枚举_03

6.位段的应用

在数据网络传输时,对数据包进行压缩

位段,枚举,联合(共用体)_位段_04

二、枚举

举报

相关推荐

0 条评论