Ho questo codice nella libreria Delphi Detours che sto cercando di porto:Delphi parola chiave "default" con i tipi di record in vecchie versioni di 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;
Che cosa significa il "default
" parola chiave fare? Mi assumo qualcosa di simile:
FillChar(Inst, SizeOf(TInstruction), 0);
è la mia ipotesi è corretta?
Definisce/inizializza anche i campi dei tipi gestiti. –
@LURD, posso capire la parte "inizializza". ma quando finisce la variabile? – zig
@zig, ad esempio, cancellazione della memoria da matrici e matrici dinamiche, se il record cancellato era l'ultimo riferimento. Un altro esempio è lo scollegamento degli oggetti conteggio di riferimento di tipo 'interface'. vedi docwiki.embarcadero.com/Libraries/XE7/en/System.Finalize –