What MACRO can be used to switch off printf statements, rather than removing them all for deployment builds, I just want to switch them off, skip them, ignore them.
EDIT: I personally use gcc, but code is part of a larger project which will be compiled on a Panda board running Ubuntu.
Not exactly what you ask for, but I use this construct in my code for debug output when I do not have a proper logging system handy:
#if 1 #define SPAM(a) printf a #else #define SPAM(a) (void)0 #endif
So I can do this all over my code
SPAM(("foo: %d\n", 42));
and then disable all of them by changing
But if you have variadic macro support in all compilers that you write code for, then you may go for other answers and just redefine
printf. (That being said, I find it useful to distinct debugging prints from regular ones in code — using a different function name helps readability.)
Note that you also can redirect
stdout to the
/dev/null, but I assume that you want to get rid from runtime overhead as well.