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