Einzelnen Beitrag anzeigen

NicoDE
(Gast)

n/a Beiträge
 
#6

Re: Zugriff auf Variante Teile in Record-Typen

  Alt 25. Nov 2005, 14:58
Ich würde mich nicht auf das Alignment verlassen (ist auch der Grund für den Compiler-Bug).
Du solltest die Struktur als 'packed' deklarieren und die Zwischenräume durch die benötigte 'Ausrichtung' mit Variablen füllen...

Ein Workaround könnte so aussehen:
Delphi-Quellcode:
type
  TTest = record
    case Integer of
      0: (Typ : Boolean); // LongBool? (check C/C++ code)
      1: (Reserved: Double; // Alignment
  { end; }
    case {Typ: }Boolean of
      False: (T1: Integer);
      True: (T2: Double));
  { end; }
  end;
edit:
Zitat von ma2xx:
... Ziel ist es ohne Dummy auszukommen UND ohne packed
Wird wegen des Compiler-Bugs nicht gehen...

ps: muss es denn auf der C/C++-Seite unbedingt eine unbenannte Union sein? (ist ohnehin nicht standard-konform...)
  Mit Zitat antworten Zitat