Zitat von
ma2xx:
nur warum nicht an der gleichen Anfangsadresse?
Weil der Delphi-Compiler den varianten Teil der Struktur offensichtlich nicht als Einheit betrachtet und die Ausrichtung jeweils einzeln für die Mitglieder der 'Union' berechnet (dies ist wahrscheinlich nicht das, was die meisten Entwickler erwarten würden - kurz, man könnte es als Bug bezeichnen (ich kenne die Delphi-Dokumentation nicht auswendig
)).
Zitat von
ma2xx:
Der Code in C++ sieht wie folgt aus (wenn ich mich nicht irre)
Ja, leider...
...in einer Typ-Definition haben anonyme Unions eigentlich nichts zu suchen.
( siehe
http://msdn.microsoft.com/library/de...m/class_33.asp )
Es wäre besser gewesen, wenn die Deklaration so ausgesehen hätte:
Code:
typedef struct tag_TTest {
bool Typ;
union {
int T1;
double T2;
} u1;
} TTest, * PTest;
Wie auch immer, es hält dich niemand davon ab, die Struktur in Delphi anders zu übersetzen (zum Beispiel mit u1 als inline-record)...