Forum: Compiler & IDEs defines und printf


von LüLü (Gast)


Lesenswert?

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

von Chris (Gast)


Lesenswert?

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"

von OldBug (Gast)


Lesenswert?

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);
[..]

von LüLü (Gast)


Lesenswert?

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.

von OldBug (Gast)


Lesenswert?

Hast Du denn die zweite Variante wenigstens probiert? :-)

von LüLü (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.