Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

Re: One more time: c Header samt Union in Delphi übersetzen

  Alt 21. Okt 2009, 14:58
Integer ist hier einfach nur zur Unterscheidung der Typen und es ist in diesem Sinne kein Felsd dafür im Record angelegt

Es sei denn du gibst zusätzlich noch einen Variablenbezeichner mit an

Das Programm sagt dir nicht, welcher Teil nun genutzt wird, das kannst/mußt du selber machen
und selbst das ist nichtmal verbindlich (man kann "0" eintragen und dennoch auf "1" zugreifen)

Delphi-Quellcode:
TMatrix = record
    case Integer of
      0: (...);
      1: (...);
  end;

TMatrix = record
    case Boolean of
      false: (...);
      true: (...);
  end;

TSet = (a, b, d);
TMatrix = record
    case TSet of
      a: (...);
      b: (...);
      c: (...);
  end;

Delphi-Quellcode:
TMatrix = record
    case TYP of
      ...
  end;
// entspricht
TMatrix = record
  ...
end;
Delphi-Quellcode:
TMatrix = record
    case x: TYP of
      ...
  end;
// entspricht
TMatrix = record
    x: TYP;
    case TYP of
      ...
  end;
// entspricht
TMatrix = record
    x: TYP;
    ...
  end;
also das Entsprechen = in Bezug auf den Speicheraufbau des Records.

[edit]
OK, da war zwar wer schneller, aber was soll's
$2B or not $2B
  Mit Zitat antworten Zitat