C语言union和位域

2021-04-15  本文已影响0人  init123

举例

union:
union {
int a;
char b;
short c;
}un;
位域:
struct bitDomain{
int a:10;
char b:2;
int c:22;
}

内存占用

union:占用字节数最大的数据类型为union的字节宽度,如上un的占用4字节。
位域:在内存对齐的基础上,各成员的宽度之和,如上bitDomain占用8字节。

位域其他

struct bitDomain{
int a:10;
int b;
int c:22;
}
如上成员b没有标明位数,说明占用原始类型的宽度,此位域占用12字节。
位域赋值超出的时候会被截断。

详细介绍

http://c.biancheng.net/cpp/html/2932.html
http://c.biancheng.net/view/2037.html

上一篇下一篇

猜你喜欢

热点阅读