可能的重复:
将 C 数组声明移植到 Delphi
我正在将 C 代码转换为 Delphi,并且我想转换变量声明,但我真的不知道..你能帮忙吗?
char szImageName[BUFMAXLEN];
Run Code Online (Sandbox Code Playgroud)
谢谢。
德尔福等效为:
var
szImageName: array [0..BUFMAXLEN-1] of AnsiChar;
Run Code Online (Sandbox Code Playgroud)
请小心使用AnsiChar而不是Char因为在现代版本的 Delphi 中泛型类型Char被别名为 2 byte WideChar。当然,如果您使用的是 Unicode 之前的 Delphi,则此警告并不相关。
语法上最大的区别是,C 中的所有数组都以 0 作为下界。在 Delphi 中,您可以指定您想要的任何下限。当然,为了匹配 C 代码,我们指定 0 作为下限。