Forum: Compiler & IDEs Wie Kommentare per #define einfügen?


von no comment (Gast)


Lesenswert?

Hallo,

ich würde gerne mit #define wahlweise code oder Kommentare einfügen.
Z.B. so:
/*
#define DEBUGF  fprintf
#define LDEBUGF fprintf
*/
#define DEBUGF //
#define LDEBUGF  //

Je nachdem ob man die Debug-Funktionen benutzen mochte wird entweder
gedruckt - oder nicht.

Leider geht das so nicht, da die Kommentare natürlich als Kommentar
interpretiert werden.

Wie könnte man das machen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

#if DEBUG
#   define DEBUGF(...) fprintf(_VA_ARGS_)
#else
#   define DEBUGF(...) /* nothing */
#endif

Du fragst in einem GCC-Forum, insofern gehe ich davon aus, dass
dein Compiler C99-Mode _VA_ARGS_ kennt.  Wenn man das nicht
zur Verfügung hat, muss man das etwas umständlicher ausdrücken,
falls der DEBUGF-Makro eine nicht näher bestimmte Anzahl von
Argumenten übernehmen können soll.

Das Ein- und Ausschalten erfolgt typisch durch Übergabe von
-DDEBUG (ist dasselbe wie -DDEBUG=1) oder -DDEBUG=0 (ist
effektiv für obigen Konstrukt gleich dem Weglassen jeglicher
Definition von DEBUG) auf der Kommandozeile.

von no comment (Gast)


Lesenswert?

Hallo Jörg,

danke für die schnelle Antwort.

Klappt!

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.