【发布时间】:2020-05-06 18:07:16
【问题描述】:
我有一个旧程序将一些帕斯卡记录写入文件:
type
Character = Record
Name : String[50];
Age : integer;
end;
begin
// [..] data contain a Character record
AssignFile(f, data); // example
Write(f, data); // example
CloseFile(f) // example
end.
是否可以打开此文件并从 C、C++、Go 等其他语言读取记录?
谢谢。
【问题讨论】:
-
是的,有可能。
-
有可能;但是,您将需要知道
integer的大小对于您的 Pascal 编译器(可能是 Delphi,根据您给出问题的标签)。 -
您有一些关键字可以帮助我进行研究吗?
-
Delphi
Integer的大小是 32 位。 (IIRC,自 1996 年发布的 Delphi 2 以来一直如此。在 32 位和 64 位应用程序中,大小均为 32 位。) -
然后是打包。第一个字段是 51 字节,所以第二个 2 字节字段将在一个奇数地址上,没有填充。