结构体 和 union 大小 小结
这是因为字节对齐原则,在Linux下其是按2字节对齐,可是在VC++下默认是按8字节对齐,必须满足4的整数倍。这样有助于存储效率。第一个char 为1字节,int为4字节,由于8字节对齐原则系统会预留出3个字节,保证8个字节对齐。而第二个两个char 2个字节,1个int4字节,系统补充2个字节后,此时8个字节,再加一个Int为12.满足条件
struct stOne // 结构体1
{
char c1;
int i1;
char c2;
int i2;
};
struct stTwo // 结构体2
{
char c1;
char c2;
int i1;
int i2;
};
各位大侠,上面两个结构体因为硬件的边界调整原则,占用内存大小并不相同。在我的电脑上,sizeof(struct stOne)是16,sizeof(struct stTwo)是12。

是不是 1 + 4 +(3字节对齐) = 8 2+ (2字节对齐) = 4 所以是 12
还有 union 是以最大的 为 空间 如果没有对其他地点进行初始化的话 回是垃圾值。 以我本人看 我这个是小端模式 大端模式的话 大数据存小地址。所以我这个是小端模式 大地之村大数据所以得出0

结构体 和 union 大小 小结的更多相关文章
- TCP/IP协议头部结构体(网摘小结)(转)
源:TCP/IP协议头部结构体(网摘小结) TCP/IP协议头部结构体(转) 网络协议结构体定义 // i386 is little_endian. #ifndef LITTLE_ENDIAN #de ...
- 【C++】结构体、联合体大小计算
struct结构体大小计算 struct A { char a; int b; char c; } 这个结构体中,char占据1字节,int占据4字节,char占据1字节,而这组数据结构的大小是12字 ...
- sizeof操作符-结构体与类大小
导读 sizeof是C/C++一个难点,当在自定义类上应用sizeof操作符时,总会出现意想不到的结果,下面,我们就来探讨一下sizeof这个操作符! 目录 1. sizeof与strlen的区别 2 ...
- C语言结构体占用空间内存大小解析
结构体的数据类型的有点我们就不啰嗦了,直接来看相同数据结构体的几种书写的格式吧. 格式一: 01.struct tagPhone 02.{ 03. char A; 04. int ...
- 结构体struct 与 联合union
1.C语言中的结构体 1.1 定义 结构体是由一系列相同或不同类型的变量组成的集合. struct 结构体名{ //struct为关键字,“结构体名”为用户定义的类型标识. ...
- 结构体struct、联合体union、枚举类型enum
1.c语言中的类型 1)内置类型——char,short,int,float,double: 2)用户自定义类型(UDT)——struct结构体,union联合体,enum枚举类型 2.内存对齐 2. ...
- C++中的空类与空结构体大小
今天面试遇到了一个很有意思的问题,即空结构体在C++中所占的内存大小是多少?参见如下代码: #include <iostream> struct S0 { }; int main() { ...
- C语言中 不定义结构体变量求成员大小
所谓的求成员大小, 是求成员在该结构体中 用 sizeof(结构体名.结构体成员名) 求来的. 很多时候我们需要知道一个结构体成员中的某个成员的大小, 但是我们又不需要定义该结构体类型的变量(定义的话 ...
- 解析C语言结构体对齐(内存对齐问题)
C语言结构体对齐也是老生常谈的话题了.基本上是面试题的必考题.内容虽然很基础,但一不小心就会弄错.写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的 ...
- 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)
一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...
随机推荐
- 安装yml 与 wget
一.备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-B ...
- 工具 | todesk最新版设备代码、连接密码读取工具,附下载链接
工具介绍: todesk最新版读取设备代码.连接密码 工具 下载链接: 下载链接: todesk最新版读取设备代码.连接密码 工具下载 使用说明 工具使用效果如图
- 《原型设计工具深度解析:Axure到墨刀的实战指南》
原型设计工具深度解析:从Axure到墨刀的实战应用 项目背景 "Shou学"作为信息学院本科必修课指南平台,需通过高保真原型实现课程导航.知识点拆解.习题模拟等核心功能.本文结合& ...
- CatBoost算法原理及Python实现
一.概述 CatBoost 是在传统GBDT基础上改进和优化的一种算法,由俄罗斯 Yandex 公司开发,于2017 年开源,在处理类别型特征和防止过拟合方面有独特优势. 在实际数据中,存在大 ...
- 图解Spring源码4-Spring Bean的作用域
>>>点击去看B站配套视频<<< 系列文章目录和关于我 1. 从一个例子开始 小陈经过开店标准化审计流程后,终于拥有了一家自己的咖啡店,在营业前它向总部的咖啡杯生产 ...
- windows11 安装CUDA Toolkit,Python,Anaconda,PyTorch并使用DeepSeek 多模态模型 Janus-Pro识别和生成图片
一.概述 因为公司网络做了严格限制,必须使用账号登录,才能上网.必须是指定的ip地址和MAC地址设备才可以上网. windows11开启热点,安装第三方虚拟机软件,开启WSL2虚拟机都是被禁止的,否则 ...
- c++并发编程实战-第2章 线程管控
线程的基本管控 每个应用程序都至少拥有一个线程,即运行main函数的线程,称为主线程,它由c++运行时系统启动.我们可以在软件运行中产生其他线程,它们以指定的函数作为入口函数.当main函数返回后,程 ...
- ES查询优化随记1: 多路向量查询 & KNN IO排查 & 高效Filter使用
哈哈最近感觉自己不像算法倒像是DB,整天围着ES打转,今天查IO,明天查内存,一会优化查询,一会优化吞吐.毕竟RAG离不开知识库,我们的选型是ES,于是这一年都是和ES的各种纠葛.所以顺手把近期获得的 ...
- Itex+freemarker 导出PDF文件时✓无法正常显示
在使用Itex+freemarker 导出PDF文件时✓无法正常显示 在网上看到了以下思路:经过实验后是靠谱的 1.首先打开一个word文件,输入这个特殊字符,然后在字体选择框里看见这个特殊字符所用的 ...
- fastjson jsonobject对象转为网址传参pathvalue形式并按首字母排序
效果 代码 @Test public void test() { JSONObject jsonObject = new JSONObject(true); jsonObject.put(" ...