Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将C结构迁移到Delphi记录_C_Delphi_Data Structures_Struct_Record - Fatal编程技术网

将C结构迁移到Delphi记录

将C结构迁移到Delphi记录,c,delphi,data-structures,struct,record,C,Delphi,Data Structures,Struct,Record,我想知道如何将C结构转换成Delphi记录 下面的代码是C语言。我想转换成Delphi 提前感谢。Uint16相当于单词类型,[]表示数组 MY_STRUCT_1 = record value1 : Array [0..31] of Word; value2 : Array [0..21] of Word; value3 : Array [0..7] of Word; end; 您可能需要使用packed关键字。默认情况下,Delphi将根据(我相信)您是在16位、32位还是64位

我想知道如何将C结构转换成Delphi记录

下面的代码是C语言。我想转换成Delphi


提前感谢。

Uint16相当于单词类型,
[]
表示数组

MY_STRUCT_1 = record
  value1 : Array [0..31] of Word;
  value2 : Array [0..21] of Word;
  value3 : Array [0..7] of Word;
end;

您可能需要使用packed关键字。默认情况下,Delphi将根据(我相信)您是在16位、32位还是64位平台上开发以及记录中的数据类型来调整变量。使用packed将更改保存记录所需的内存长度/大小。默认情况下,C将打包该结构

MY_STRUCT_1 = packed record
  value1 : Array [0..31] of Word;
  value2 : Array [0..21] of Word;
  value3 : Array [0..7] of Word;
end;
另见:

感谢您的快速回复。这对我帮助很大。Cheers上述记录不需要
打包的
说明符。现代的Delphi版本使用与C/C++编译器相同的对齐规则。在Delphi5中呢?“打包”是否仍然需要使用?如中所述,C结构在默认情况下不打包(编译器添加填充)。
MY_STRUCT_1 = packed record
  value1 : Array [0..31] of Word;
  value2 : Array [0..21] of Word;
  value3 : Array [0..7] of Word;
end;