У меня есть этот код в библиотеке Delphi Detours, который я пытаюсь порт:Delphi ключевое слово «по умолчанию» с типами записей в старых версиях Delphi
type
TInstruction = record
Archi: Byte; { CPUX32 or CPUX64 ! }
AddrMode: Byte; { Address Mode }
Addr: PByte;
VirtualAddr: PByte;
NextInst: PByte; { Pointer to the Next Instruction }
OpCode: Byte; { OpCode Value }
OpType: Byte;
OpKind: Byte;
OpTable: Byte; { tbOneByte,tbTwoByte,... }
OperandFlags: Byte;
Prefixes: Word; { Sets of Prf_xxx }
...
end;
var
Inst: TInstruction;
begin
...
Inst := default (TInstruction); // <-
Inst.Archi := CPUX;
Pvt := PPointer(AIntf)^; // vTable !
PCode := PPointer(Pvt + Offset)^; // Code Entry !
Inst.NextInst := PCode;
...
end;
Что означает «default
» ключевое слово делать? я предположить что-то вроде:
FillChar(Inst, SizeOf(TInstruction), 0);
Является ли мое предположение верно?
Он завершает/инициализирует поля управляемых типов. –
@ LURD, я могу понять, что «инициализирует» часть. но когда это завершает переменную? – zig
@zig, например, очистка памяти от динамических массивов и укусов, если удаленная запись была последней ссылкой. Другим примером является отключение объектов, связанных со списком типов интерфейса. см. docwiki.embarcadero.com/Libraries/XE7/en/System.Finalize –