首页 > 其他分享 >Delphi的字节对齐和简单string结构

Delphi的字节对齐和简单string结构

时间:2023-04-17 18:34:28浏览次数:41  
标签:string Delphi sAccount LLh Integer 对齐 字节

procedure TForm1.Button1Click(Sender: TObject);
 type
 TTest = record
 sAccount: string[31]; // 如果不加Packed 30和31是相同的大小 虽然是相同的,如果网络编程,传递后转换,Delphi是识别不出来的,会出现越界问题。
 sChrName: string[15];
 sUserAddr: string[15];
 nSessionID: Integer;
 end;
 var
 LLh: TTest;
 begin
 LLh.sAccount := '1234';
 ShowMessage(Format('%d, %d, %x', [SizeOf(LLh), Integer((PChar(@LLh))^), Integer(LLh.sAccount[1])])); // 48, 4
 // sAccount: string[12] 字节 13 , sAccount[1]前一个字节是长度
 end;

标签:string,Delphi,sAccount,LLh,Integer,对齐,字节
From: https://blog.51cto.com/u_16076050/6195830

相关文章

  • Delphi类里面的方法和类型定义不影响创建实例的大小
    unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;typeTForm1=class(TForm)Button1:TButton;procedureButton1Click(Sender:TObject);private{Privatedeclarations}public{Pub......
  • random模块&string模块谈python中随机数
    一、概述随机数在程序设计中的属于比较基础的内容,主要用于验证场景(如验证码,生成账号对应的密码等),今天结合random模块和string模块来谈谈python中随机数那些事儿。二、随机数实现相关模块2.1random模块random.random()返回一个随机浮点数。>>>importrandom>>>print(ran......
  • WPF中Binding使用StringFormat格式化字符串方法
    https://blog.csdn.net/weixin_34040079/article/details/89587412 原文: WPF中Binding使用StringFormat格式化字符串方法 货币格式<TextBlockText="{BindingPrice,StringFormat={}{0:C}}"/>//$123.46货币格式,一位小数<TextBoxText="{BindingPrice,Str......
  • 内存对齐
    1、什么是内存对齐还是用一个例子带出这个问题,看下面的小程序,理论上,32位系统下,int占4byte,char占一个byte,那么将它们放到一个结构体中应该占4+1=5byte;但是实际上,通过运行程序得到的结果是8byte,这就是内存对齐所导致的。//32位系统#include<stdio.h>struct{intx;ch......
  • JSON.stringify()与JSON.parse()没有你想的那样简单
    重新学习这两个API的起因在本周五有线上的项目,16:30开始验证线上环境。开始都是顺顺利利,一帆风顺。大概17:50左右,我正在收拾东西。准备下班去王者峡谷骑着我的船溜达一圈。可是天降意外,给我派了一个bug。测试给我说:有一条数据的详情页有数据但是在页面中没有显示数据。不可......
  • css中文字与图片对齐
    css中文字与图片对齐第一种,使用vertical-align:middle.icon{ background-repeat:no-repeat; background-position:center;display:inline-block;width:16px;height:16px;vertical-align:middle;}.icon-down{background-image:url(./imgs/icon......
  • how to use cURL with a variable in the URL string All In One
    howtousecURLwithavariableintheURLstringAllInOne如何在cURL的URL字符串中使用变量系统变量环境变量shell变量#cURL字符串中如何使用shell系统环境变量❓$exportDD_ROBOT_TOKEN=404e99******36d17fa1202$echo$DD_ROBOT_TOKEN#404e99*****......
  • 内存对齐详解 (C++代码)
    内存对齐详解(C++代码)目录内存对齐详解(C++代码)Test1:结构体对齐Test2:时间开销对比我每天都有读一下面经的习惯,从里面抽一些我不太懂的内容使用dfs的思想去探索,感谢有了GPT4,探索之路变得有趣和高效许多。今天这个Topic如下,是腾讯日常实习面经中的内容编译内存相关:C+......
  • delphi FastReport 从流(数据库)中加载和保存报表
    FastReport从流(数据库)中加载和保存报表属性和方法TfrxReport.LoadFromStreamprocedureLoadFromStream(Stream:TStream);从流中加载报表。参数Stream来源流。TfrxReport.SaveToStreamprocedureSaveToStream(Stream:TStream);将报表保存到流中。参数Stream来源......
  • Delphi FDMemTable内存表用法及简单操作函数封装(转)
    在某些场景下当轻量级的应用需要在内存中缓存数量比较多且字段比较多的高频使用数据时。以前我都是采用Ini或直接使用sqlite数据库。JSON也试过基本无法或很难实现需要的功能,因为当涉及某一同类型对象多字段多列时不通过遍历基本无法直接取到或修改数据。这样就导致了效率的低下。......