Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Macro to turn off printf statements

Tags:

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.

like image 338
some_id Avatar asked Apr 23 '11 15:04

some_id


People also ask

How do I disable printf?

Bookmark this question. Show activity on this post. #pragma once class disable { public: disable(void); ~disable(void); void Disable(); };

Is printf a macro?

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.


1 Answers

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.

like image 114
Alexander Gladysh Avatar answered Sep 22 '22 06:09

Alexander Gladysh