Ich habe mal eine ganz allgemeine C-Frage: Über defines sind einige "Standards" festgelegt (wie z.B Seriennummer), nun möchte ich diese über printf mit ausgeben, in etwa so : printf("blablabla Seriennummer blablabla"); Eigentlich werden die defines ja überall im Quellcode vom Compiler stumpf ersetzt, nur natürlich nicht in einer Textausgabe. Irgendjemand eine Idee, wie man das möglichst elegant lösen könnte. Leider stoße ich genau auf dieses Problem öfter, ansonsten würd ich mir ja was zurechtpfuschen. Vielen Dank schonmal
C hat (wie eigentlich immer) einen Trick auf Lager. Hintereinanderstehende String-Literale werden zu einem zusammengefasst: char* helloworld = "Hello " "World" "!"; /* entspricht: */ char* helloworld = "Hello World!"; Du schreibt also einfach: printf("blablabla " SERIENNUMMER " blablabla"); Und definierst SERIENNUMMER über den Präprozessor: #define SERIENNUMMER "0.1"
Falls "Seriennummer" eine Zahl ist, kannst Du sie mittels Formatstring in Dein printf einbauen. Für Integerwerte geht das dann so: [..] #define SERIENNUMMER 4711 [..] printf("Seriennummer: %d", SERIENNUMMER); [..]
Danke euch beiden, hab mir schon fast gedacht das es eine ganz einfachen Weg gibt, hät ich auch selber drauf kommen können :-)Habs jetzt so gemacht wie Chris gesagt hat.
Ehrlich gesagt...nee :-) Ich habe nämlich nicht nur Zahlen, daher fällt diese Variante weg. Aber ist gemerkt, dass das funktioniert, falls ich noch einmal ein ähnliches Problem habe.
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.