C语言程序中加调试开关

看PostgreSQL中的代码:

/* Debugging.... */



#ifdef FDDEBUG

#define DO_DB(A) A

#else

#define DO_DB(A)                /* A */

#endif

此后,在为定义 FDDEBUG的情况下,如果执行 DO_DB(function1());

就相当于 /*function1();*/,也就是什么都不执行

而且,如果对PostgreSQL进行查找,发现 没有定义 FDDEBUG 的地方,估计哪个开发者自己手工加入的吧:

[root@lex ttt]# find ./  | xargs grep "FDDEBUG"

Binary file ./src/backend/postgres matches

Binary file ./src/backend/storage/file/fd.o matches

./src/backend/storage/file/fd.c:#ifdef FDDEBUG

./src/backend/storage/file/fd.c:#if defined(FDDEBUG)

./src/backend/storage/file/fd.c:#endif   /* FDDEBUG */

./src/backend/storage/file/fd.c:#ifdef FDDEBUG

 

你可能感兴趣的:(C语言)