gpt4 book ai didi

Delphi 从字节到结构

转载 作者:行者123 更新时间:2023-12-03 15:45:25 27 4
gpt4 key购买 nike

我有下一个代码:

type THead = packed record
znmpc: byte;
znmpcch: array [0..1] of char;
znc, zneispr, zkpd, zkps, nd: byte;
zb9, zb10, zb11, zb12, zb13, zb14, zb15: byte;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
db: ^THead;
a: array [0..9] of byte;
begin
a[7] := 9;
db := @a;
ShowMessage(IntToStr(db.nd));
end;

这段代码安全吗?我担心下一件事:结构的大小超过缓冲区的大小,我对此感到恐惧。 nd 之后的 struct 成员的值对我来说没有任何意义。我想知道这段代码在某些情况下是否会抛出异常,如果是在什么情况下抛出异常?

最佳答案

我猜如果你小心处理它是绝对安全的。但您需要确保您不会忘记您可能无法访问 zb11..zb15。另外,回想一下,在 Delphi 2009 之前,char 是 1 个字节,在 Delphi 2009 及更高版本中是 2 个字节。另外,也许值得将记录打包(在这种情况下您认为不需要,但迂腐地明确永远不会错)?最后,当然你必须小心,以免数组超出范围!

关于Delphi 从字节到结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070802/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com