当前位置: 首页 > 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字节 。

相关文章:

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

struct A {short a; char b; int c : 1; char d : 4; short e : 7; }; 备注&#xff1a;蓝色&#xff1a;表示占一个符号位空间红色&#xff1a;表示补齐其他颜色&#xff1a;实际最大值所占空间 &#xff08;1&#xff09;图解例1 st…...

游戏行业实战案例 5 :玩家在线分布

【面试题】某游戏数据后台设有“登录日志”和“登出日志”两张表。 「登录日志」记录各玩家的登录时间和登录时的角色等级。 「登出日志」记录各玩家的登出时间和登出时的角色等级。 其中&#xff0c;「角色 id 」字段唯一识别玩家。 游戏开服前两天&#xff08; 2022-08-13 至…...

TypeScript 关于对【泛型】的定义使用解读

目录 概念导读泛型函数多个泛型参数泛型约束泛型别名泛型接口泛型类总结&#xff1a; 概念导读 泛型&#xff08;Generics&#xff09;是指在定义函数、接口或类的时候&#xff0c;不预先指定具体的类型&#xff0c;而在使用的时候再指定类型的一种特性。使用泛型 可以复用类型…...

盛元广通食品药品检验检测实验室LIMS系统

随着食品与制药行业法规标准的日益提高和国家两化融合的不断推进&#xff0c;为保障检验工作的客观、公正及科学性&#xff0c;确保制药企业对于生产、实验室、物流、管理的信息化和智能化需求越来越明确&#xff0c;为确保新品可及时得到科学准确的检测检验结果&#xff0c;盛…...

【数据结构】-- 栈和队列

&#x1f407; &#x1f525;博客主页&#xff1a; 云曦 &#x1f4cb;系列专栏&#xff1a;数据结构 &#x1f4a8;吾生也有涯&#xff0c;而知也无涯 &#x1f49b; 感谢大家&#x1f44d;点赞 &#x1f60b;关注&#x1f4dd;评论 文章目录 前言一、栈&#x1f4d9;1.1 栈…...

使用SpringAop切面编程通过Spel表达式实现Controller权限控制

目录 参考一、概念SpEL表达式 二、开发引入包定义注解定义切面定义用户上下文 三、测试新建Service在方法上注解新建Service在类上注解运行 参考 SpringBoot&#xff1a;SpEL让复杂权限控制变得很简单 一、概念 对于在Springboot中&#xff0c;利用自定义注解切面来实现接口…...

Flutter:简单搞一个内容高亮

内容高亮并不陌生&#xff0c;特别是在搜索内容页面&#xff0c;可以说四处可见&#xff0c;就拿掘金这个应用而言&#xff0c;针对某一个关键字&#xff0c;我们搜索之后&#xff0c;与关键字相同的内容&#xff0c;则会高亮展示&#xff0c;如下图所示&#xff1a; 如上的效果…...

2023/08/10

文章目录 一、计算属性传参二、小程序、h5跳转其他平台授权三、封装popup弹窗四、实现保存海报五、下载图片和复制分享链接 一、计算属性传参 计算属性的值往往通过一个回调函数返回&#xff0c;但是这个回调函数是无法传递参数的&#xff0c;要想实现计算属性传参可以通过闭包…...

LeetCode 1289. 下降路径最小和 II:通俗易懂地讲解O(n^2) + O(1)的做法

【LetMeFly】1289.下降路径最小和 II&#xff1a;通俗易懂地讲解O(n^2) O(1)的做法 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-falling-path-sum-ii/ 给你一个 n x n 整数矩阵 arr &#xff0c;请你返回 非零偏移下降路径 数字和的最小值。 非零偏移下…...

Coin Change

一、题目 Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent. We want to make changes with these coins for a given amount of money. For example, if we have 11 cents, then we can make changes with one 10-cent coin and one 1-c…...

2023 8 -14链表OJ

&#x1f495;人面只今何处去&#xff0c;桃花依旧笑春风&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;详解链表OJ题 题目一&#xff1a;环形链表&#xff08;判断链表是否带环&#xff09; 题目描述&#xff1a; 画图分析&#xff1a; 代码实现&#x…...

大数据必回之LSM树

LSM树&#xff08;Log-Structured-Merge-Tree&#xff09;并不像B、红黑树一样是一颗严格的树状数据结构&#xff0c;它其实是一种存储结构&#xff0c;像HBase、RocksDB这些NoSQL存储都是采用LSM树。它是一种分层、有序、面向磁盘的数据结构&#xff0c;核心思想是顺序写性能远…...

Vue中的Object.defineProperty详解

Vue中的Object.defineProperty是一个比较重要的方法&#xff0c;它是可以定义对象中属性的一个方法&#xff0c;相比于在对象中直接定义的对象&#xff0c;它更具有灵活性。 直接定义对象中的属性是这样的&#xff1a; let person {name:张三,address:广东,age:12,} 而Object.…...

MySQL高阶知识点(一)一条SQL【更新】语句是如何执行的

一条SQL【更新】语句是如何执行的 首先&#xff0c;可以确定的说&#xff0c;【查询】语句的那一套流程&#xff0c;【更新】语句也是同样会走一遍&#xff0c;与查询流程不一样的是&#xff0c; 更新语句涉及到【事务】&#xff0c;就必须保证事务的四大特性&#xff1a;ACID&…...

threejs实现模型gltf的动画效果

确保加载模型后模型有animations属性。加载完模型后&#xff0c;在模型中定义mixer的变量值。 // 4、加入加载器 const loader new GLTFLoader(); loader.load("./model/gltf/RobotExpressive/RobotExpressive.glb", function (gltf) {// 赋值动画给mixermixer ne…...

Harmony创建项目ohpm报错

Harmony创建FA模型的项目时报如下错&#xff1a; The registry is empty - edit .ohpmrc file or use "ohpm config set registry your_registry" command to set registry.解决方法&#xff1a; File -> Settings -> Build,Execution,Deployment -> Ohpm …...

44 | 酒店预订及取消的数据分析

1.背景介绍 数据集来自Kaggle网站上公开的Hotel booking demand项目 该数据集包含了一家城市酒店和一家度假酒店的预订信息,包括预订时间、入住时间、成人、儿童或婴儿数量、可用停车位数量等信息。 数据集容量约为12万32 本次数据分析主要包含如下内容: 总览数据,完成对…...

物联网和不断发展的ITSM

物联网将改变社会&#xff0c;整个技术行业关于对机器连接都通过嵌入式传感器、软件和收集和交换数据的电子设备每天都在更新中。Gartner 预测&#xff0c;全球将有4亿台互联设备投入使用。 无论企业采用物联网的速度如何&#xff0c;连接设备都将成为新常态&#xff0c;IT服务…...

加了ComponentScan,但是feign接口无法注入的原因

正文 正确的注入 如果发现无法注入&#xff1a;看看启动类Application是否有加入注解&#xff1a;EnableFeignClients(AppConstant.BASE_PACKAGES) 注意&#xff1a;EnableFeignClients和ComponentScan是两个独立的扫描&#xff0c;所以&#xff0c;如果只配置了ComponentSca…...

C#Winform中DataGridView控件显示行号实例

本文演示C#Winform中如何给DataGridView控件显示行号。 首先创建winform项目,添加DataGridView控件,给控件添加两列。 修改CS代码: using System.Windows.Forms;namespace DataGridviewDemo {public partial class Form1 : Form{public Form1(){InitializeComponent();//添…...

深度理解算法和数据结构:栈并非天生存在,而是数组的「思想封装」|4 道经典题从本质吃透栈与单调栈

前言 在学习栈、队列这类数据结构时&#xff0c;很多人会陷入一个误区&#xff1a;把它们当成固定的 API、死记push/pop/top操作。 但我最近真正想通了一件事 ——数据结构从来不是先有的结构&#xff0c;而是先有的思想。栈并不是什么神奇的黑盒&#xff0c;它本质上就是&…...

2026年揭秘长沙那些被众多人推荐的宝藏酒吧

在长沙这座充满活力与激情的城市&#xff0c;酒吧文化丰富多彩。2026年&#xff0c;有一家宝藏酒吧不容错过——长沙米娅秀场&#xff0c;它以独特的魅力在众多酒吧中脱颖而出。打破传统&#xff0c;解决社交痛点传统酒吧存在诸多社交痛点&#xff0c;如拼桌与社交尴尬、噪音污…...

Windows系统焕新指南:用Win11Debloat打造高效流畅体验

Windows系统焕新指南&#xff1a;用Win11Debloat打造高效流畅体验 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and cu…...

为什么要做 GeoPipeAgent贾

指令替换 项目需求&#xff1a;将加法指令替换为减法 项目目录如下 /MyProject ├── CMakeLists.txt # CMake 配置文件 ├── build/ #构建目录 │ └── test.c #测试编译代码 └── mypass2.cpp # pass 项目代码 一&#xff0c;测试代码示例 test.c // test.c #includ…...

2026年终极指南:3步掌握B站资源下载神器BiliTools

2026年终极指南&#xff1a;3步掌握B站资源下载神器BiliTools 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 还在为…...

解锁嵌入式视觉开发:ESP32-OpenCV实现低功耗边缘计算方案

解锁嵌入式视觉开发&#xff1a;ESP32-OpenCV实现低功耗边缘计算方案 【免费下载链接】esp32-opencv Shrinked OpenCV for ESP32 项目地址: https://gitcode.com/gh_mirrors/es/esp32-opencv 在物联网设备日益普及的今天&#xff0c;嵌入式视觉技术正面临着"算力需…...

【仅限前500名开发者】EF Core 10向量搜索成本诊断工具包(含SQL Server 2022向量索引开销分析器CLI)

第一章&#xff1a;EF Core 10向量搜索扩展成本控制策略全景概览EF Core 10 引入的向量搜索扩展&#xff08;Microsoft.EntityFrameworkCore.Vector&#xff09;为.NET开发者提供了原生支持近似最近邻&#xff08;ANN&#xff09;查询的能力&#xff0c;但其底层依赖向量索引构…...

终极指南:如何用PoeCharm中文版轻松规划你的《流放之路》角色构建

终极指南&#xff1a;如何用PoeCharm中文版轻松规划你的《流放之路》角色构建 【免费下载链接】PoeCharm Path of Building Chinese version 项目地址: https://gitcode.com/gh_mirrors/po/PoeCharm 还在为《流放之路》复杂的角色构建系统感到头疼吗&#xff1f;面对海量…...

DataRoom大屏设计器:3分钟打造专业数据可视化看板的终极解决方案

DataRoom大屏设计器&#xff1a;3分钟打造专业数据可视化看板的终极解决方案 【免费下载链接】DataRoom &#x1f525;基于SpringBoot、MyBatisPlus、ElementUI、G2Plot、Echarts等技术栈的大屏设计器&#xff0c;具备目录管理、DashBoard设计、预览能力&#xff0c;支持MySQL、…...

流程图:符号背后的逻辑与高效设计技巧

1. 流程图符号的底层逻辑解析 第一次接触流程图时&#xff0c;很多人会被那些看似简单的图形符号搞得晕头转向。我刚开始画流程图时&#xff0c;经常把菱形和矩形搞混&#xff0c;结果画出来的流程图逻辑完全错乱。直到后来系统学习了符号背后的设计哲学&#xff0c;才发现每个…...