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?
#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.
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.