home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Source Code 1992 March
/
Source_Code_CD-ROM_Walnut_Creek_March_1992.iso
/
usenet
/
altsrcs
/
1
/
1278
< prev
next >
Wrap
Internet Message Format
|
1990-12-28
|
2KB
From: kc@oz.rci.dk (Knud Christensen)
Newsgroups: comp.lang.c,comp.unix.wizards,alt.sources,comp.sources.d,misc.misc
Subject: Re: #define DEBUG... (using printf for debugging)
Message-ID: <801@oz.rci.dk>
Date: 7 May 90 12:17:07 GMT
gordon@mimir.cs.cornell.edu (Jeffrey Adam Gordon) writes:
>I want to have a DEBUG flag which controls whether diagnostic printfs
>are executed or not.
>The obvious way to do this is:
>#ifdef DEBUG
> printf ("debugging information");
>#endif DEBUG
>But its a pain to have to type the #ifdef ... #endif all the time, and
>its less readable than simply having:
> DEBUG ("debugging information");
>Now, I can use the latter format if I
>#define DEBUG printf
>but then how do I turn DEBUG off?
>I have though of doing the following (which is not very elegant but I
>thought it would work):
>#ifdef DODEBUG
># define DEBUG printf
># define ENDDEBUG ;
>#else
># define DEBUG /*
># define ENDDEBUG */
>#endif DODEBUG
>which would allow the following syntax for debugging
> DEBUG ("the value is %d", val); ENDDEBUG
>Unfortunately, I can't figure out how to #define something to be equal
>to "/*" sinece "/*" always seems to be interpreted as the start of a
>comment.
>Well, I've been rambling trying to describe the problem. Basically,
>does anyone have an idea how I can do the above easily and elegantly?
>Thanks for reading.
>- Jeff
>
The following, which i found in a magazine solves the problem very elegantly i
think:
/*
debug.h
This header file gives a number of usefull definitions for debugging
*/
#ifdef debug
# define DFPRINTF(x) fprintf x
# define DTRACE fprintf(stderr, "Trace line %d\n", __LINE__)
# define DTRINT(var) fprintf(stderr, "Trace line %d var = %d\n", __LINE__, var)
#else
# define DFPRINTF(x)
# define DTRACE
# define DTRINT(var)
#endif
/*
End of debug facility definitions
*/
C-program
#define debug
#include "debug.h"
int i,j;
main()
{
DFPRINTF((stdout,"This is a test %d", i));
}
----
Knud Christensen RC International, Denmark
kc@rci.dk
It is better to keep your mouth shut, and look like a fool
than to open it, and remove all doubt! - Marx - (Groucho not Karl).