C语言union和位域
发布网友
发布时间:2022-12-02 13:54
我来回答
共1个回答
热心网友
时间:2023-11-10 09:31
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