将C结构迁移到Delphi记录
我想知道如何将C结构转换成Delphi记录 下面的代码是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位
提前感谢。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;