Guten Morgen, Ich programmiere in C und habe eine Variable vom Typ struct, die „eintrag1“ heißt. Jetzt möchte ich im Programm automatisch den Namen der Variable hochzählen und neue struct-Variablen definieren (eintrag1. eintrag2…). Bei einem Int hätte ich den Namen in zwei chars zerlegt, mit strcpy und strcat zusammengefügt und die Funktion atoi verwendet, aber hier komme ich seit zwei Tagen nicht weiter. Im Studium haben wie nur die Grundbegriffe von C gelernt und über Google habe ich auch nicht gefunden, wobei ich zugeben muss auch nicht genau zu wissen wonach ich eigentlich suchen soll:). Ich hoffe, dass ihr mir helfen könnt. Gruß Lena
Weil ich nicht daran gedacht habe:) da fehlt mir wohl noch die Erfahrung. Vielen Dank für den Denkanstoß.
Auch das Basteln von int-Namen funktioniert nicht so, wie du das beschrieben hast.
Ich glaub in C gibt es das nicht. Hab ich jedenfalls noch nirgends gesehen. Ich kenn das nur bei PHP. Dort hat jede Variable ein $-Zeichen voran stehen. Und wenn man da auf $eintrag1 zugreifen will, kann man auch schreiben: $var = "eintrag1"; echo $$var; Doch PHP gilt als eine uneffektive Sprache, dafür meines Erachtens aber einfacher als andere. Keine Datentypen z.B. oder man braucht bei Arrays keine Größe am Anfang festlegen, sondern man sagt, eine Variable ist ein Array und das wars.
Es gäbe noch den Verkettungsoperator ##, aber die Verwendung ist nur für den Precompiler gedacht
Stefan schrieb: > Es gäbe noch den Verkettungsoperator ## Was macht der? Google filtert leider das ## heraus.
Lena schrieb: > Ich programmiere in C und habe eine Variable vom Typ struct, die > „eintrag1“ heißt. > Jetzt möchte ich im Programm automatisch den Namen der Variable > hochzählen und neue struct-Variablen definieren (eintrag1. eintrag2…). Wozu das Ganze? Du erzählst, wie_ Du _irgendetwas implementieren willst; es wäre wesentlich sinnvoller, wenn Du zuerst einmal berichtest, was Du da machen willst. Beschreibe also zunächst bitte, was dieses irgendetwas ist. Als nächstes solltest Du vielleicht einmal Dich anhand eines C-Lehrbuchs Deiner Wahl mit der Sprache "C" etwas vertrauter machen. Bernhard
Nico Sch. schrieb: > Stefan schrieb: >> Es gäbe noch den Verkettungsoperator ## > > Was macht der? Google filtert leider das ## heraus. Aber das "Verkettungsoperator" wohl kaum. Lena schrieb: > Bei einem Int hätte ich den Namen in zwei chars zerlegt, mit strcpy und > strcat zusammengefügt und die Funktion atoi verwendet Was mit Sicherheit nicht das von dir erwartete Ergebnis hätte.
Lena schrieb: > Jetzt möchte ich im Programm automatisch den Namen der Variable > hochzählen und neue struct-Variablen definieren (eintrag1. eintrag2…). > > Bei einem Int hätte ich den Namen in zwei chars zerlegt, mit strcpy und > strcat zusammengefügt und die Funktion atoi verwendet, aber hier komme > ich seit zwei Tagen nicht weiter. Im Studium haben wie nur die > Grundbegriffe von C gelernt und über Google habe ich auch nicht > gefunden, wobei ich zugeben muss auch nicht genau zu wissen wonach ich > eigentlich suchen soll:). Naja, das ist kein Wunder, sowas geht in C naemlich nicht. C ist keine interpretierte Sprache, da muessen fuer den Compiler logischerweise die Bezeichner auch zur Compilezeit bekannt sein. Rein theoretisch kann man gerade bei Strukturen durch einen entsprechenden Speicherzugriff die Namen "umgehen", das ist aber gefaehrlich, da man sich darauf verlassen koennen muss, wie die Strukturen im Speicher organisiert werden und das kann man bei unterschiedlichen Compilerversionen nicht wirklich. Greets, Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.