当前位置: 首页 > news >正文

图解结构体大小和位域例子

struct A {short a;                char b;              int c : 1;           char d : 4; short e : 7;
};

备注:蓝色:表示占一个符号位空间红色:表示补齐其他颜色:实际最大值所占空间

(1)图解例1

struct A {short a;                char b; 
};

 short a:2字节,因为其不是unsigned ,所以是第一位是符号位,区分正负,所以实际最大值为15位

char b:1字节,因为其默认是unsigned ,所以实际最大值为8位

short:2字节
补齐:char:1字节补齐1字节
所以为4字节

(2)图解例2

struct A {short a;                   char b;              int c : 1;
};

 short a:2字节,因为其不是unsigned ,所以是第一位是符号位,区分正负,所以实际最大值为15位 

 int c:1位,因为其不是unsigned 所以是第一位是符号位,所以实际最大值为0位

short:2字节
补齐:char:1字节int c:1补齐7位
所以为4字节

(3)图解例3

struct A {short a;                char b;              int c : 1;           char d : 4; 
}

short a:2字节,因为其不是unsigned ,所以是第一位是符号位,区分正负,所以实际最大值为15位 

char d:4位,因为其默认是unsigned ,所以实际最大值为4位

short:2字节
补齐:char:1字节int c:1char d:4补齐3位
所以为4字节

(4)图解例4

struct A {short a;                char b;              int c : 1;           char d : 4; short e : 7;
};

short d:7位,因为其不是unsigned 所以是第一位是符号位,所以实际最大值为6位

short:2字节
补齐(1):char:1字节int c:1char d:4补齐3位
所以为4字节补齐(2):short:7位补齐:25位
所以为4字节总共8字节

【总结】

结构体中int型是最大的字节数为4,取结构体成员的时候,可以按照4字节来取,然后再根据自身所占大小来划分对应的地址。所以 short2字节,本该补齐2字节,但是成员里的b是8位,c是1位,d是4位,相加为13位<16位,那么补齐3位,也就是b、c、d构成2字节,那么a、b、c、d构成4字节。e是7位,补齐25位,也就是4字节。所以结构体大小为8字节 。

http://www.lryc.cn/news/123339.html

相关文章:

  • 游戏行业实战案例 5 :玩家在线分布
  • TypeScript 关于对【泛型】的定义使用解读
  • 盛元广通食品药品检验检测实验室LIMS系统
  • 【数据结构】-- 栈和队列
  • 使用SpringAop切面编程通过Spel表达式实现Controller权限控制
  • Flutter:简单搞一个内容高亮
  • 2023/08/10
  • LeetCode 1289. 下降路径最小和 II:通俗易懂地讲解O(n^2) + O(1)的做法
  • Coin Change
  • 2023 8 -14链表OJ
  • 大数据必回之LSM树
  • Vue中的Object.defineProperty详解
  • MySQL高阶知识点(一)一条SQL【更新】语句是如何执行的
  • threejs实现模型gltf的动画效果
  • Harmony创建项目ohpm报错
  • 44 | 酒店预订及取消的数据分析
  • 物联网和不断发展的ITSM
  • 加了ComponentScan,但是feign接口无法注入的原因
  • C#Winform中DataGridView控件显示行号实例
  • Stable Diffusion WebUI安装和使用教程(Windows)
  • LeetCode 35题:搜索插入位置
  • Linux系统中常见的几种软件包管理器
  • python异步IO完全指南
  • 打造企业或者个人IP引流法
  • TMC Self-Managed 提升跨多云环境安全性
  • 并发编程 - 线程间三种常见的通信手段
  • iperf3命令使用说明
  • 华纳云:美国Linux服务器磁盘分区备份的操作方式
  • Arrays类
  • lua ipairs pairs