/********************************************************************************************************************************
原文地址:http://blog.chinaunix.net/uid-571104-id-2734615.html
转载说明:这个是-D的升级版!!
********************************************************************************************************************************/
在一大堆代码面前,而你需要修改的是所有代码中的一个DEBUG函数,这可是个难事啊。现在有个好办
法,就是启用gcc的-imacros选项。
我们可以这样来用,如下例:
我们没有定义_DEBUG和DEBUG函数,所以我们可以把想定义的宏放在一个文件里:
如果这个文件叫macro
那么结合gcc可以这样来使用macro文件里的宏:
gcc -imacros macro -o test test.c
如果你想要重新定义宏或函数,而又不想修改一大堆代码的话,这种方法最适合不过了!
我们可以这样来用,如下例:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
_DEBUG("OK%d\n", 100);
DEBUG("YES", 1231);
DEBUG1("OK?%d\n", 10000);
return 0;
}
我们没有定义_DEBUG和DEBUG函数,所以我们可以把想定义的宏放在一个文件里:
#define _DEBUG printf
#define DEBUG(args...) fprintf(stderr, args)
#define DEBUG(args...) fprintf(stderr, "NEW: %s%d\n", args)
#define DEBUG1(args...) fprintf(stderr, "DEBUG1:"args)
如果这个文件叫macro
那么结合gcc可以这样来使用macro文件里的宏:
gcc -imacros macro -o test test.c
如果你想要重新定义宏或函数,而又不想修改一大堆代码的话,这种方法最适合不过了!