自学内容网 自学内容网

E34.【C语言】位段练习题

1.题目

分析下列代码中位段在内存中的排布(已知测试平台为VS2022)

struct S
{
int a : 2;
int b : 5;
int c : 10;
int d : 30;
};

int main()
{
struct S s = { 0 };
return 0;
}

有关位段的知识点见64.【C语言】再议结构体(下)

2.提示

VS满足:由低地址向高地址存储,按浪费空间处理,设二进制数据的存储顺序为从右向左

3.分析

位段的空间以4个字节(int)或者1个字节(char)的方式来开辟

因此一次性申请4个字节

二进制数据的存储顺序为从右向左,d不够存储,则再开辟4字节空间单独存储d,有两部分空间被浪费

则图为


原文地址:https://blog.csdn.net/2401_85828611/article/details/142643284

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!