title: Delphi "default" keyword with Record types in older Delphi versions
body: <p>I have this code in Delphi Detours library which I'm trying to port:</p>
  
  <pre><code>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); // &lt;-
    Inst.Archi := CPUX;
    Pvt := PPointer(AIntf)^; // vTable !
    PCode := PPointer(Pvt + Offset)^; // Code Entry !
    Inst.NextInst := PCode;
    ...
  end;
  </code></pre>
  
  <p>What does the "<code>default</code>" keyword do?
  I <strong>assume</strong> something like:</p>
  
  <pre><code>FillChar(Inst, SizeOf(TInstruction), 0);
  </code></pre>
  
  <p>Is my assumption correct?</p>