c语言位域
Posted 想文艺一点的程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言位域相关的知识,希望对你有一定的参考价值。
1、结构体位域的内存分布
区别一下两种规则:
- 如果相邻位域字段的类型相同,且其位宽之和小于类型的sizeof大小,则后面的字段将紧邻前一个字段存储,直到不能容纳为止。
- 如果相邻的位域字段的类型不同,则各编译器的具体实现有差异,VC6采取不压缩方式,Dev-C++,GCC采取压缩方式;
- 最大的数据类型为 int :所以是 4 字节对齐。
- 如果相邻位域字段的类型相同,紧邻着前一个字段进行存储。
- 如果相邻的位域字段的类型不同,则各编译器的具体实现有差异,VC6采取不压缩方式,Dev-C++,GCC采取压缩方式;
- 最大的数据类型为 int :所以是 4 字节对齐。
- 这边编译器是 VC ,所以不压缩。
如果是 gcc 编译器:就是采用压缩的方式,4字节。
以上是关于c语言位域的主要内容,如果未能解决你的问题,请参考以下文章