C语言之位段

1.位段的声明
位段的声明和结构是类似的,有两个不同:
1.位段的成员必须是 int、unsigned int 或signed int 。
2.位段的成员名后边有一个冒号和一个数字。
比如:
struct A
{int _a:2;int _b:5;int _c:10;int _d:30;
};
A 就是一个位段类型。
那位段 A 的大小是多少?(以64位机器为例)
printf ( "%d\n" , sizeof ( struct A ));

 

为什么不是(2+5+10+30)/  8 = 7  呢?下面我们了解一下位段的内存分配。

2.位段的内存分配
1. 位段的成员可以是 int unsigned int signed int 或者是 char (属于整形家族)类型
2. 位段的空间上是按照需要以8个字节( int )或者1个字节( char )的方式来开辟的。
3. 位段涉及很多不确定因素,位段是不跨平台的,注重可移植的程序应该避免使用位段。

下面举一个例子(来了解对应内存的分配):

struct S
{char a : 3;char b : 4;char c : 5;char d : 4;
};int main()
{struct S s = { 0 };s.a = 10;s.b = 12;s.c = 3;s.d = 4;printf("%d\n", sizeof(struct S));return 0;
}

 输出结果:

内存角度:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/785606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【上海大学计算机组成原理实验报告】二、数据传送实验

一、实验目的 了解在模型机中算术、逻辑运算单元的控制方法。学习机器语言程序的运行过程。通过人工译码,加深对译码器基本工作原理的理解。 二、实验原理 根据实验指导书的相关内容,本次实验所要用的CP226实验仪在手动方式下,运算功能通过…

LeetCode-热题100:160. 相交链表

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后&…

Go语言学习Day6:数组与切片

名人说:莫愁千里路,自有到来风。 ——钱珝 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1. 数组① 什么是数组② 数组的声明③ 初始化数组的几种方式④ 遍历数组元素⑤ 数组为值类型⑥ 数…

pytest教程-21-失败重跑插件-pytest-rerunfailures

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了pytest插件的基本使用方法,本小节我们讲解一下pytest用例失败重跑插件pytest-rerunfailures。 测试环境不稳定偶发接口超时(和服务无关,纯粹是环境问题&…

【C语言】带你完全理解指针(四)函数指针的应用sqort函数的实现

前言: 本文主要是函数指针的重要应用,介绍qsort函数以及模拟实现这样一个不限制使用数据类型的快速排序函数。 回调函数 函数指针有一个非常大的作用就是实现回调函数。非常重要 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xf…

python如何画奥运五环

绘制奥运五环主要涉及到Python中的turtle绘图库运用: 程序源代码为: import turtle turtle.width(10) turtle.color(black) turtle.circle(50) turtle.penup() turtle.goto(120,0) turtle.pendown() turtle.color(red) turtle.circle(50) turtle.penup()…

基于springboot酒店管理平台

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于酒店管理平台系统当然也不能排除在外,随着网络技术的不断成熟,带动了酒店管理平台系统,它彻底改变了过…

坚持刷题|分发饼干

文章目录 题目思路代码实现实现总结主要步骤时间复杂度 扩展问题 Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,今天刷第一个贪心算法:分发饼干 题目 455.分发饼干 思路 要解决这个问题,可以使用…

Autodesk Maya 2025 mac玛雅三维动画特效软件

Autodesk Maya 2025 for Mac是一款功能强大、操作简便的三维动画软件,适用于电影、电视、游戏、建筑、工业设计、虚拟现实和动画等领域。无论是专业设计师还是初学者,都可以通过Maya 2025实现自己的创意和想法,创作出高质量的三维作品。 软件…

多尺度变换(Multidimensional Scaling ,MDS)详解

一、基本思想 MDS(Multidimensional Scaling ,MDS多维尺度变换)是一种经典的降维算法,其基本思想是通过保持数据点之间的距离关系,将高维数据映射到低维空间中。 具体来说,MDS算法的基本步骤如下&#xff…

栈————顺序栈和链式栈

目录 栈 顺序栈 1、初始化顺序栈 2、判栈空 3、进栈 4、出栈 5、读栈顶元素 6、遍历 链式栈 1、初始化链式栈 2、断链式栈是否为空判 3、入栈(插入) ​编辑​编辑 4、出栈(删除) 5、读取栈顶元素 6、输出链式栈中各个节点的值(遍历) 栈 …

Express.js项目实战(1)—— 我的藏书馆

首先新建文件夹——myLibrary 在vscode中点击文件>点击 Duplicate Workspace(以工作区的方式打开文件夹myLibrary) 点击duplicate Workspace(打开工作区) 之后,会出现以下界面 点击打开文件夹,选择新建的文件夹,会出…

Vscode + PlatformIO + Arduino 搭建EPS32开发环境

Vscode PlatformIO Arduino 搭建EPS32开发环境 文章目录 Vscode PlatformIO Arduino 搭建EPS32开发环境1. Vscode插件安装2. 使用PlatformIO新建工程3.工程文件的基本结构4.一个基本的测试用例Reference 1. Vscode插件安装 如何下载vscode这里不再赘述,完成基本…

超低代码智能音频开发来了:XMOS宣布与DSP Concepts建立合作伙伴关系推动AIoT音频应用

人工智能和芯片供应商 XMOS 宣布与嵌入式音频软件专家 DSP Concepts 建立合作伙伴关系。该合作协议将允许音频开发人员将 XMOS 的高度确定性、低延迟的 xcore.ai 平台与 DSP Concepts 的 Audio Weaver 软件结合起来。该软件使用户能够利用多核算力以图形方式设计和调试音频和语…

EXCEL VBA与CSV的结合使用,提高多个CSV的处

EXCEL VBA与CSV的结合使用,提高多CSV的处理 1、首先创建一个文本文件,然后将copy *.csv 合并.csv粘贴,并重命名后缀未bat 2、将bat和多个CSV放一个路径下 3、双击运行合并.bat,运行完成会后生成合并.csv 4、将csv用Excel打开&…

ALPHA开发板上PHY网络芯片LAN8720

一. 简介 正点原子的开发板 ALPHA开发板,有线网络硬件方案所使用的也是最常用的一种方案,IMX6ULL芯片内部是自带 MAC网络芯片的,所以,也就是采用 "SOC内部集成网络MAC外设 PHY网络芯片方案"。 ALPHA开发板使用的PHY网…

算法第三十七天-旋转链表

旋转链表 题目要求 解题思路 题意:将链表中每个元素向后移动k个位置,相当于把链表的后面k%len节点移到链表的最前面。 所以本题步骤为: 1.求出链表长度; 2.找出倒数第k1个节点 3.链表重整:将连败哦的倒数第k1个节点和…

讲解pwngdb的用法,以csapp的bomb lab phase_1为例

参考资料 Guide to Faster, Less Frustrating Debugging 什么情况下会使用gbd 需要逆向ELF文件时(掌握gdb的使用,是二进制安全的基本功)开发程序时,程序执行结果不符合预期 动态调试ELF文件可以使用另外一种方法:IDA的远程linux动态调试。个…

java引入下载的依赖包配置

maven中央仓库没有依赖包&#xff0c;但是个别网站有可以下载的依赖包下载依赖包并引入的配置在maven工程目录下建立lib目录&#xff0c;并将下载的jar包放入在pom.xml文件中配置本地依赖 <dependency><groupId>org.ejml</groupId><artifactId>…

LeetCode——动态规划(Java)

动态规划 简介[简单] 509. 斐波那契数[简单] 70. 爬楼梯[简单] 746. 使用最小花费爬楼梯[中等] 62. 不同路径[中等] 63. 不同路径 II[中等] 343. 整数拆分[中等] 96. 不同的二叉搜索树背包问题01背包[中等] 416. 分割等和子集[中等] 1049. 最后一块石头的重量 II[中等] 494. 目…