![]() |
|
|
|||||||
| Portal | Wiki | IRC-Chat | Registrieren | Benutzerliste | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
|
|
Themen-Optionen | Thema bewerten | Ansicht |
|
|
#1 |
|
Profifragensteller
|
Moin!
Ich habe ein struct, in dem zwei verschiedene nested structs stecken können. Voll ausgefüllt könnte das struct in zwei Varianten auftreten: 1. Code:
Code:
Nun könnte man natürlich sagen "mach einfach zwei verschiedene structs, eins heißt "toll_1" und eins "toll_2" - aber eben genau das möchte ich nicht, ich möchte vielmehr wissen, ob es eine Möglichkeit gibt, den Teil des nested struct variabel zu halten. Mach ich sowas vielleicht mit einem Pointer: Code:
Wie also macht man's elegant? Ist die Lösung tatsächlich, zwei Strukturen anzulegen oder gibt es eine Lösung ohne Codedopplung? Viele Grüße Herakles Geändert von Herakles (17.10.2012 um 15:51 Uhr). Grund: Rechtschreibfehler |
|
|
|
|
|
#2 |
|
Registered User
Registrierungsdatum: Jul 2004
Beiträge: 117
|
Muss es unbedingt reines C sein? Falls Du auch C++ nutzen kannst/darfst, könntest Du ein Template benutzen, also
template <typename T> struct toll { int a; T y; int b; }; Willst Du eine Variable anlegen, musst Du das Template mit dem gewünschten Datentyp spezialisieren, also toll<super> variable1; bzw. toll<klasse> variable2; Näheres zu templates gibts z.B. unter www.willemer.de/informatik/cpp/cpptempl.htm |
|
|
|
|
|
#3 |
|
Parasprite
|
Du kannst das mit union machen. Da ist aber der Hinweis notwendig, dass die größe des union immer vom größeren struct abhängt und, du hast dann keine Typsicherheit zwischen den Typen. D.h. du musst wissen was da drin ist, das unterscheided dein Compiler nicht für dich.
Code:
Code:
__________________
[ bsdlogo 2.0 - Wiki - Ports - LibreOffice Pakete - PM schreiben - kamikaze@bsdforen.de ]
Disclaimer: My posts represent my perception. Errors and incompleteness are to be expected, I deny any responsibility to know everything. |
|
|
|
|
|
#4 |
|
rm -rf /*
Registrierungsdatum: Jun 2008
Ort: Bremen
Beiträge: 1.076
|
Herakles: Hast du man darüber nachgedacht einfach ein gutes Buch zu C zu kaufen und zu lesen?
|
|
|
|
|
|
#5 |
|
Parasprite
|
So was habe ich noch nie gesehen.
__________________
[ bsdlogo 2.0 - Wiki - Ports - LibreOffice Pakete - PM schreiben - kamikaze@bsdforen.de ]
Disclaimer: My posts represent my perception. Errors and incompleteness are to be expected, I deny any responsibility to know everything. |
|
|
|
|
|
#6 |
|
Profifragensteller
|
@Crest:
Ich besitze sehr wohl ein C-Buch, mehrere sogar. Das, was ich als Nachschlagewerk nutze, ist "C von A bis Z" von Jürgen Wolf. In meinen Augen eigentlich ein gutes Buch, aber ich stoße dennoch immer wieder an dessen Grenzen. Da ich nur wenige Möglichkeiten haben, mich fachgerecht mit Kollegen auszutauschen, nutze ich gern dieses Forum, um Lösungen für knifflige Fachfragen zu haben. Da ich hier eine große Community wirklich guter Programmierer habe, frage ich eben gern hier nach. Ich hatte nich gedacht, dass das jemanden stören könnte. Schließlich sind die Infos hier für jedermann ersichtlich und bringt evtl. auch andere "Mitleser" weiter... Grüße Herakles |
|
|
|
|
|
#7 | |
|
Parasprite
|
Zitat:
Das ist zumindest meine Sicht der Dinge.
__________________
[ bsdlogo 2.0 - Wiki - Ports - LibreOffice Pakete - PM schreiben - kamikaze@bsdforen.de ]
Disclaimer: My posts represent my perception. Errors and incompleteness are to be expected, I deny any responsibility to know everything. |
|
|
|
|
|
|
#8 |
|
Bicycle User
Registrierungsdatum: Aug 2004
Ort: nuernberg
Beiträge: 2.532
|
union. ganz einfach union.
__________________
Computer science is not about using a computer. It is about unleashing its powers. |
|
|
|
|
|
#9 |
|
FreeBSD User
|
|
|
|
|
|
|
#10 |
|
rm -rf /*
Registrierungsdatum: Jun 2008
Ort: Bremen
Beiträge: 1.076
|
Okay sorry ich war gerade von faulen Kommilitonen gestresst.
|
|
|
|