defines und printf

Gast #236759
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
Gast #236760
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"
Gast #236761
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);
[..]

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren