Forum: PC-Programmierung printf() per #define aktivieren/deaktivieren


von pks (Gast)


Lesenswert?

Hallo,

fällt jemandem eine Möglichkeit ein, wie ich in einem Programm die 
Ausgabe über printf per #define steuern kann, ohne dafür um jeden aufruf 
eine #ifdef zu machen?

von preprocessor (Gast)


Lesenswert?

#ifdef AUSGABE
#define PRINTF(x) printf(x)
#else
#define PRINTF(x)
#endif

--------------------

  PRINTF("lalalal" );

  mach was

  PRINTF( "...." )

von pks (Gast)


Lesenswert?

Darauf bin ich natürlich auch gekommen. Ich bin allerdings davon 
ausgegangen, dass das nicht mit variablen Parameterzahlen funtioniert. 
Täusche ich mich da?

von Vlad T. (vlad_tepesch)


Lesenswert?

nein tust du nicht.

so sollte es aber funktionieren:
1
#ifdef LOG_ACTIVE
2
#  define LOG(...) printf(__VA_ARGS__)
3
#else
4
#  define LOG(...)
5
#endif
6
7
// ...
8
int d = 10000;
9
LOG("d=%d", d);

von pks (Gast)


Lesenswert?

Perfekt, danke!

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.