0
点赞
收藏
分享

微信扫一扫

结构体中的位段

律楷粑粑 2022-03-27 阅读 42
c语言

一.什么是位段

注意点:1.位段的成员必须是int、unsigned int 或者signed int、char

               2.位段的成员名后面有一个冒号和一个数字

struct A
{
int a2; //a占两个bit位
int b : 5;
int c : 10;
int d : 30;
}

二.位段的内存分配

        1.位段的空间上是按照需要以4字节(int)或者1字节(char)来开辟

        2.位段是不跨平台的,可移植程序应该避免使用位段

        3.一个位段必须储存在同一个储存单元中,不能跨两个储存单元

        例:在VS中,上述A结构体是如下图放置的。

        先放置a,b,c,剩下的空间不够放d了,再开辟一个int,放入d,所以A结构体占字节大小为8

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LqM55CD5oKs6ZOD5pyo5Li2,size_20,color_FFFFFF,t_70,g_se,x_16

下图中第一个储存单元的空闲空间放不下a5,需要再开辟一个储存单元

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LqM55CD5oKs6ZOD5pyo5Li2,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

 

 

举报

相关推荐

0 条评论