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.
Bookmark this question. Show activity on this post. #pragma once class disable { public: disable(void); ~disable(void); void Disable(); };
We can use printf() function in a Macro. In this example, we are creating a function like Macro that will print the result of a calculation, like adding two numbers.
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 1
to 0
in #if
above.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With