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