Ich suche nach einem Stück Code, der mir den Offset eines Feldes innerhalb einer Struktur sagen kann, ohne eine Instanz der Struktur zuzuordnen.C/C++ Struktur Offset
IE:
struct mstct {
int myfield;
int myfield2;
};
I schreiben konnte:
mstct thing;
printf("offset %lu\n", (unsigned long)(&thing.myfield2 - &thing));
Und "Offset 4" erhalten für die Ausgabe. Wie kann ich es ohne diese "mstct thing" -Deklaration machen?
Ich weiß, dass & <struct> nicht immer auf das erste Byte des ersten Feldes der Struktur zeigen, ich kann das später erklären.
Nicht ganz was ich wollte, weil ich nicht stdefdef.h habe, aber es beantwortet meine Frage mit: #define offsetof (TYPE, MITGLIED) ((size_t) & ((TYPE *) 0) -> MITGLIED) – davenpcj
Wow - nein stddef.h? Könnte ich nur aus Neugier fragen, was du benutzt? –
Es ist in der C99-Standard, also würde ich vorschlagen, einen neuen Compiler zu bekommen. – wnoise