首页 > 系统相关 ># 结构体成员定义的顺序也会影响结构体的大小,内存对齐,内存填充

# 结构体成员定义的顺序也会影响结构体的大小,内存对齐,内存填充

时间:2024-09-07 14:46:43浏览次数:3  
标签:填充 bytes 内存 对齐 byte public 结构

结构体成员定义的顺序也会影响结构体的大小,内存对齐,内存填充

using System;
using System.Runtime.InteropServices;

struct StrcutOne
{
    public int b; // 4 bytes
    public byte a; // 1
    public byte c; // 1
    // 4+1+1+2(在填充两个2个字节) = 8 字节
}

struct StrcutTwo
{
    public byte a; // 1 byte
    public int b; // 4 bytes
    public byte c; // 1 byte
    // 1+3(填充)+4+1+3(填充) = 12
}

class Program
{
    static void Main()
    {
        Console.WriteLine($"Size of ChangedOrder: {Marshal.SizeOf<StrcutOne>()} bytes");
        Console.WriteLine($"Size of ExampleStruct: {Marshal.SizeOf<StrcutTwo>()} bytes");
    }
}

标签:填充,bytes,内存,对齐,byte,public,结构
From: https://www.cnblogs.com/zhuoss/p/18401673

相关文章

  • [C#基础2/21] C#注释与文件结构
    Notion原笔记页面1.注释C#支持两种不同形式的注释。单行注释以 // 开头,并在该代码行末尾结束。多行注释以 /* 开头,以 */ 结尾。下面的代码示例演示了每种注释://Thisisasinglelinecomment./*Thiscouldbeasummaryofallthecodethat'sinthiscl......
  • 浙大数据结构:02-线性结构4 Pop Sequence
    这道题我们采用数组来模拟堆栈和队列。简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop1、条件准备stk是栈,que是队列。tt指向的是栈中下标,front指向队头,rear指向队尾。初始化栈顶为0,队头为0,队尾为-1#include<iostream>usingn......
  • Promise resolve reject 一直不执行会不会导致内存泄漏
    如果一个Promise一直不resolve或reject,它本身不会直接导致内存泄漏。这是因为Promise对象在其状态变为fulfilled(已解决)或rejected(已拒绝)之后就会变成不可变的状态,并且Promise本身并不会持有对大量数据的引用。然而,有几个方面需要注意:事件监听器和定时器:如果Pr......
  • 数据结构基本概念和术语
    1.1.数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型,实型等数值类型,还包括字符及声音,图像,视频等非数值类型。1.2.数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为一个整体处理。也被称为......
  • 【数据结构】顺序表的应用
    基于动态顺序表实现通讯录功能要求1)至少能够存储100个⼈的通讯信息2)能够保存用户信息:名字、性别、年龄、电话、地址等3)增加联系人信息4)删除指定联系人5)查找制定联系人6)修改指定联系人7)显示联系人信息SeqList.h#pragmaonce#define_CRT_SECURE_NO_WARNINGS#incl......
  • excel姓名两个字和三个字对齐怎么做?
    下面设计学徒自学网给大家介绍一下excel2个字和3个字人名对齐打开一个有人名的Excel文件。选中有人名的单元格后右键选择设置单元格格式。选择上方对齐。文章源自四五设计网-https://www.45te.com/50521.html选择水平对齐下拉列表内的分散对齐(缩进)。点击确定即可。效......
  • C++顺序结构(1)
    1、C++程序的样子2、流输出流COUT<<3、一个实例及解析//001程序的基本结构 //单行注释/*多行注释 被注释过的内容不会被运行,可以用来做笔记。基本结构:1.头文件 程序包含某个头文件后,程序中的代码就可以使用这个头文件里的功能。2.命名空间3.主函数 类似Scr......
  • 深入理解动态内存(一):动态内存使用常见问题
    目录对NULL指针的解引用操作对动态开辟空间的越界访问对非动态开辟内存使用free释放使用free释放⼀块动态开辟内存的⼀部分对同⼀块动态内存多次释放动态开辟内存忘记释放(内存泄漏)对NULL指针的解引用操作#include<stdio.h>#include<stdlib.h>intmain(){ int*p......
  • Linux 性能优化(网络、磁盘、内存、日志监控)
    1、CPU性能监控1.2、平均负载基础平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和CPU使用率并没有直接关系。平均负载其实就是平均活跃进程数。平均活跃进程数,直观上的理解就是单位时间内的活跃进程数。查看cpu个数:grep'modelnam......
  • PART1-Oracle关系数据结构-数据字典与动态性能视图
    6.数据字典与动态性能视图6.1.数据字典概述Oracle数据库的一个重要组成部分是其数据字典,这是一个只读的表集合,提供了有关数据库的管理元数据。数据字典包含如下信息:数据库中每个模式对象的定义,包括列的默认值和完整性约束信息分配给模式对象的空间量以及当前使用的量Oracl......