gpt4 book ai didi

delphi - 类型差异

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

德尔福。

为什么

type 
myInt = Integer;
myNewInt = -2147483648..2147483647;

var
a: myint;
b: myNewInt;

begin
a := b;
end;

尽管类型形式不同,但它可以正常编译 - 一个是在这里声明的,另一个是从其他模块继承的。如果

uses 
windows;

type
_FILETIMEA = record // Copy from windows.pas
dwLowDateTime: DWORD;
dwHighDateTime: DWORD;
end;

var
x: _FILETIMEA;
y: windows._FILETIME;

begin
x := y;
end;

将导致编译错误(行x:=y; [DCC Error] ... E2010 不兼容的类型:'windows._FILETIME' 和 '_FILETIMEA' ),但是类型 _FILETIMEA = Windows._FILETIME

最佳答案

Delphi 不支持鸭子类型。您有 2 条不同的记录。它们只是看起来很像,但对于编译器来说它们是两种不同的类型。如果你想分配这两个变量,你必须对它们进行类型转换,因为它们具有相同的大小。

x := _FILETIMEA(y);

关于delphi - 类型差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8540780/

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