作者roylee17 (把我id还我阿......)
看板Programming
标题Re: 如何移除特定的 conditional compilation?
时间Sat Apr 14 17:26:37 2007
※ 引述《[email protected] (汀)》之铭言:
: ※ 引述《[email protected] (roylee)》之铭言:
: > 最好是用 gcc / cpp 可以直接做到
: gcc -UFOO 直接当成 #undef FOO,
: gcc -DFOO 直接当成 #define FOO。
: > 如果有其他工具也欢迎
: > 谢谢
先谢谢两位( how & tinlans)回应
我之前描述的不够清楚,再说明一点
某程式提供许多功能,用 #ifdef 包住
如果我要读该程式,可以先把一些不重要的功能给滤掉
使程式码好读,(不是编译)
$ cat prog.c
//#include <stdio.h>
#ifdef FOO
void foo(){ }
#endif
#ifdef BAR
void bar(){ }
#endif
int main(){ return 0; }
其中, FOO 为不重要的部份,想加以滤掉,变成
//#include <stdio.h>
#ifdef BAR
void bar(){ }
#endif
int main(){ return 0; }
如果用 preprocessor ,所有的 macro 都被展开了
$ cpp -E -P -DBAR prog.c
void bar(){ }
int main(){ return 0; }
我需要 #ifdef, #endif 都还留着
虽然是个简单的 filter ( 有 stack)
不还是想知道有没有好的工具
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.37.155
1F:推 ykjiang:看起来是特殊需求,要自己写 61.59.234.187 04/14 19:57
2F:推 avhacker:自己写花不了几分钟吧 140.123.19.235 04/14 22:09