Gast
#4883811
Hey Leute, ich möchte mal wissen, wie ich eine struktur in einer Struktur programmiere. Meine Idee wäre folgende:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
oder muss ich:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
|
Anzeige
|
Struktur in Struktur (c)
Gast
#4883811
Hey Leute, ich möchte mal wissen, wie ich eine struktur in einer Struktur programmiere. Meine Idee wäre folgende:
oder muss ich:
Gast
#4883815
Schonmal versucht das erste zu kompilieren? Das geht gar nicht, weil die struct zwar bekannt ist, aber Nam ein unbekannter Bezeichner ist. Du musst das ganze so schreiben, dass es das ausdruckt, was du damit ausdrücken möchtest. Das untere geht zwar prinzipiell, mein gcc mekkert aber wegen dem blöden Bezeichner NAM. wenn ichs das in myname umbenne, dann gehts.
Gast
#4883817
Peter schrieb: > Meine Idee wäre folgende: Meine Idee wäre, ein beliebies Buch über C zu lesen.
Gast
#4883821
so mecker mein Compiler nicht, kann ich das so machen?
Gast
#4883838
Peter schrieb: > so mecker mein Compiler nicht, kann ich das so machen? immer wenn der Compiler nicht meckert, kann man das so machen. Da keiner weiß was du willst, wirds schon passen. Nase schrieb: > Meine Idee wäre, ein beliebies Buch über C zu lesen. Ja Ich würde vernünftige Feldbezeichner empfehlen, u.a. den Verzicht auf Umlaute im Quelltext.
Gast
#4883935
Peter schrieb: > so mecker mein Compiler nicht, kann ich das so machen? bla.c: In Funktion »main«: bla.c:15:13: Warnung: Deklaration deklariert nichts struct FRB; ^ bla.c:16:13: Warnung: Deklaration deklariert nichts struct KOO; ^ Dann Solltest du den Compiler Wechseln, oder besser parametrieren. Wie auch immer, Dein Code macht nicht das was du erwartest, ich würde Dir wirklich eine Buch zum Thema C ans Herz legen, oder wenigstens ein Oneline tutorial zum thema struct und C, das sind basics. Außerdem, um das für und wider des typedef bei structs werden auch gerne Flamewars geführt. Im Augenblick würde ich Dir zu Lernzwecken raten das typedef zu vergessen und die Aufgabe ohne lösen. Außerdem kann ich dir nur dringend empfehlen alles was nicht in 7 Bit ASCII passt (zum Beispiel Umlaute wie in grün) nicht als Variablen Bezeichner zu verwenden. Es sollte zwar gehen (TM), aber gerade bei älteren System fällt dir so was schnell auf die Füße daher besser nicht machen.
Gast
#4883971
@Peter Damig, jetzt hab ich meinen Kaffee geholt und wollte gerade eine Antwort schreiben und dann kommst du daher und nimmst mir die Worte aus dem Mund :) Richtig sollte das so aussehen:
imonbln schrieb: > Außerdem, um das für und wider des typedef bei structs werden auch gerne > Flamewars geführt. Im Augenblick würde ich Dir zu Lernzwecken raten das > typedef zu vergessen und die Aufgabe ohne lösen. Bei den Lernzwecken bin ich bei dir. Persönlich mache ich lieber typedefs, weil ich das von C++ gewohnt bin und das nicht leiden kann, wenn überall das dämliche struct stehen muss. Wichtig ist vor allem, dass man eine Linie durchzieht und das nicht mal mit und mal ohne typedef macht. Der geneigte Leser wird es Danken. Noch etwas in eigener Sache. Investiere ein wenig Zeit um über sinnvolle Namen nachzudenken. Unter KOO kann ich mir gerade nicht wirklich zusammenreimen, was das darstellen soll. Anhand der x und y würde ich meinen, das sind Koordinaten aber das sollte so in dem Struct Namen stehen. Genau das gleiche bei den Farben. Dort sind sogar Arrays deklariert. Da fällt mir gar nichts dazu ein, wofür das benutzt werden könnte. Der Name FRB kann für alles stehen. Und zu guter letzt. Am besten, du gewöhnst dich daran, die Variablen in Englisch zu schreiben. Aktuell sind in deiner Programmierweise drei Sprachen vorhanden. C, Englisch und Deutsch. Das macht die Sache unnötig kompliziert, weil du in drei Sprachen denken musst. Da du um Englisch eh nicht drum rum kommst ( weil C sich nun mal in Englisch ausdrückt) solltest du auch auf Englisch umsteigen. Glaub mir der Code wird lesbarer. Grüße,
Gast
#4884046
Peter schrieb:
im ersten Beispiel musst Du struct voranstellen. Und
groß/kleinschreibung beachten!
struct NAM NameID;
ist halt so in C. In Deinem zweiten Beispiel wird das struct zwar nicht
benamt, aber per typedef zu dem (eigenständigen) Typen NAM. Auch hier
gro/kleinschreibung beachten.
Von daher gehen beide Beispiele.
Wenn du mit Typedef struct arbeiten willst (was ich im uebrigen sehr gerne tue), dann koennte das so aussehen:
Besser noch die typedefs ausserhalb der Funktion:
Eric B. schrieb: > Besser noch die typedefs ausserhalb der Funktion Natürlich. Eric hat natürlich recht. Hatte ich übersehen :) Eric B. schrieb: > typedef struct > { > char red[5]; > char green[7]; > char blue[5]; > } ColorType; Was ist das eigentlich für eine Farbe? 17 Byte pro Farbe kommt mir irgendwie merkwürdig vor... Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|