Record和Packed record

2024-01-12 14:18
文章标签 record packed

本文主要是介绍Record和Packed record,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Record的内存分配,需要四字节对齐.  

Packed record的内存分配,不需要四字节对齐.  

 

type
  Rec1   =record
    A:Byte;//1
字节
    B:LongWord;//3
字节
  end;

  Rec2=packed   record
    A:Byte;//1
字节
    B:LongWord;//4
字节
  end;  

 

Sizeof(Rec1)值为8   
    
Sizeof(Rec2)
值为5  

 

  TRecord    =    Record   
          s:    string[4];     //5
字节
          f:    single;          //4
字节
          c:    char;           //1
字节
          i:    Integer;       //4
字节
       end;  
       //Declare a packed record  
       TPackedRecord    =    Packed    Record
           s:    string[4];     //5
字节
          f:    single;          //4
字节
          c:    char;           //1
字节
          i:    Integer;       //4
字节
       end;  

Record的内存分配,需要四字节对齐.  

Packed record的内存分配,不需要四字节对齐.  

规则:

Record中,s 5字节要占两个四字节 (8)

                   f  4字节要占一个四字节 (4)
                   c  1字节要占一个四字节 (4)

                   i  4字节要占一个四字节 (4)

          20字节

Packed Record不用这样排,所以就是 5+4+1+4=14字节

 

这篇关于Record和Packed record的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/598143

相关文章

MySQL record 02 part

查看已建数据库的基本信息: show CREATE DATABASE mydb; 注意,是DATABASE 不是 DATABASEs, 命令成功执行后,回显的信息有: CREATE DATABASE mydb /*!40100 DEFAULT CHARACTER SET utf8mb3 / /!80016 DEFAULT ENCRYPTION=‘N’ / CREATE DATABASE myd

leetcode#551. Student Attendance Record I

题目 You are given a string representing an attendance record for a student. The record only contains the following three characters: ‘A’ : Absent. ‘L’ : Late. ‘P’ : Present. A student could be rew

MySQL record 01 part

更改密码: alter user 'root'@'localhost' identified with mysql_native_password by ‘123456’; 注意: 在命令行方式下,每条MySQL的命令都是以分号结尾的,如果不加分号,MySQL会继续等待用户输入命令,直到MySQL看到分号,才会去执行分号前的所有用户输入的语句。包括密码在内,用户名、主机名,都需要使用引

《从C/C++到Java入门指南》- 26.record 类+多态

record 类+多态 前言 由于 record 类比较简单,将他和多态放在一节中。 record 类 final类是从 Java 16开始才正式发布的,可以理解为一个final class,提供了一种更简洁紧凑的定义final类的方式。 public record Clock(int hours, int minutesperhour) {public int getHours() {

【Java】Record的使用 (简洁教程)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1 为什么引入Record4.2 Record与Class区别4.3 使用场景 五、总结:5.1 场景使用5.2 字段的定义 一、前言 学习Record有什么用

在 TypeScript 中,Record 和 Map 都用于存储键值对,但它们有以下区别

1.Record<string, string> 定义: Record 是 TypeScript 的一种类型,用于表示一个对象,其中所有的键是特定类型(通常是 string 或 number),所有的值也是特定类型。 语法: const record: Record<string, string> = {"key1": "value1","key2": "value2"}; 特性:

JJJ:结构体定义中常加的后缀:attribute ((packed))

__attribute__ ((packed)): 的作用就是告诉编译器取消结构体在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关 在GCC下:struct my{ char ch; int a;} sizeof(int)=4;sizeof(my)=8;(非紧凑模式) 在GCC下:struct my{ char ch; int a

使用JDK17的record关键字编译报错踩坑

先看报错 jdk版本是17.应该是支持的啊。第一次使用record关键字就这样了吗。 解决 在设置里面把字节码版本改为17就行,因为以前是运行jdk8的所以会出现这个问题。 设置好了之后编译就通过了。 总结 一般出现编译错误,首先看一下Project Structure 再看一下。Build,Execution,Deployment -> Compiler -> Java

Record锁/Gap锁/Next-key锁/插入意向锁

文章总共分为五个部分: InnoDB的锁机制浅析(一)—基本概念/兼容矩阵InnoDB的锁机制浅析(二)—探索InnoDB中的锁(Record锁/Gap锁/Next-key锁/插入意向锁)InnoDB的锁机制浅析(三)—幻读InnoDB的锁机制浅析(四)—不同SQL的加锁状况InnoDB的锁机制浅析(五)—死锁场景(Insert死锁) 大而全版(五合一):InnoDB的锁机制浅析(All in

计算机组成原理——RECORD

第一章 概论 1.固件  将部分操作系统固化——即把软件永恒存于只读存储器中。 2.多级层次结构的计算机系统 3.冯*诺依曼计算机的特点 4.现代计算机的组成:CPU、I/O设备、主存储器(MM) 5.细化的计算机组成框图 6.指令操作的三个阶段:取指、分析、执行 第二章 计算机的发展 1.第一台由电子管组成的电子数字积分和计算机(ENIAC) 第三章 系统总线