Я хотел бы знать, как преобразовать C struct в Delphi record ?
Следующий код находится на C. Я хочу преобразовать в Delphi.
typedef struct { Uint16 value1[32]; Uint16 value2[22]; Uint16 value3[8]; }MY_STRUCT_1;
Заранее спасибо.
Uint16 эквивалентен типу Word, а [] обозначает массив.
[]
MY_STRUCT_1 = record value1 : Array [0..31] of Word; value2 : Array [0..21] of Word; value3 : Array [0..7] of Word; end;
Возможно, вам понадобится ключевое слово pack .По умолчанию Delphi будет выравнивать переменные на основе (я полагаю) того, разрабатываете ли вы на 16, 32 или 64-битной платформе и какие типы данных находятся в вашей записи.Использование упакованного изменит длину / размер памяти, необходимой для хранения записи.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;
См. Также: http://www.delphibasics.co.uk/RTL.asp?Name=Packed