gpt4 book ai didi

delphi - Delphi 和 FPC 是否有 MakeWord 函数(两个字节或字符)?

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

这些功能很有用:

function MakeWord(low, high: char): word;
begin
result := byte(high) shl 8 + byte(low);
end;

function MakeWord(low, high: byte): word;
begin
result := high shl 8 + low;
end;

但是我想知道这些类型的函数(可以以不同的方式实现)是否已经存在于某个地方(不是在 Windows api 特定文件中,而是在跨平台 RTL 函数中)。

示例用例:获取两个字符 GT 并从中生成 WORD 结果。

MakeWord('G','T');

我发现这比在代码中插入 SHL/SHR AND/OR 十六进制操作和其他不描述代码正在做什么的黑客更具可读性......所以这些函数肯定已经存在于某个地方了吗?或者人们在他们的应用程序中推出自己的应用程序吗?

或者类似的东西:

var x: word;
begin
lo(x) := byte('G');
hi(x) := byte('T');
end;

但是,这不起作用,因为无法将左侧分配给:但在我看来,它比其他一些解决方案更具可读性。

我想我也见过 LoWord 和 HiWord 函数(或 LoByte、HiByte),但通常是在只读情况下。写给 hi 和 lo 怎么样?

最佳答案

Delphi 和 FreePascal 在 SysUtils 单元中都有一个 WordRec 记录:

德尔福:http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.WordRec

FreePascal:https://www.freepascal.org/docs-html/rtl/sysutils/wordrec.html

例如:

uses
..., SysUtils;

var
x: Word;
begin
WordRec(x).Lo := Byte(Ord('G'));
WordRec(x).Hi := Byte(Ord('T'));
end;

关于delphi - Delphi 和 FPC 是否有 MakeWord 函数(两个字节或字符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44861372/

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