Hallo zusammen,
ich habe ein etwas seltsames Konstrukt gebastelt und bin damit auf die
Nase gefallen. Und zwar hab ich in einem C++-Projekt einen Struct-Typ
definiert, der einen weiteren Struct-Typ enthält. Den inneren Struct-Typ
wollte ich dann als Datentyp verwendet.
Beispiel:
1 | typedef struct {
|
2 | typedef struct { int member; } innen_t;
|
3 | } aussen_t;
|
4 |
|
5 | void TuEtwas( aussen_t::innen_t* innen_p ) { cout << innen_p->member; }
|
6 |
|
7 | main()
|
8 | {
|
9 | aussen_t::innen_t Innen;
|
10 | TuEtwas(&Innen);
|
11 | }
|
Wenn ich dies in einer Datei mache, funktioniert es.
Wenn ich die Funktion "TuEtwas()" in ein eigenes C++-Modul packe,
bekomme ich einen "undefined reference"-Fehler auf TuEtwas().
Wenn ich mir die Symbole des erzeugten ELF-Files ansehe, dann fehlt die
Funktion "TuEtwas()" tatsächlich.
Mach ich da etwas undefiniertes oder verbotenes?