前预处理

5 c preprocessor filtering

我想要一个C预处理器,它从源代码中过滤掉一些#define语句,而不改变任何其他内容.

为什么?如果源被分发给另一个客户端,这应该用于从源中删除一些客户端特定的代码.

有谁知道现有的解决方案?

谢谢!西蒙

Pie*_*rre 9

您可以使用awk而不是CPP吗?在代码中添加一些标记,围绕要删除的代码段.例如:

(...)
//BEGIN_REMOVE_THIS_CODE

printf("secret code");

//END_REMOVE_THIS_CODE
(...)
Run Code Online (Sandbox Code Playgroud)

然后写一个awk脚本来删除这段代码,比如...

BEGIN { write=1;}
/^\/\/BEGIN_REMOVE_THIS_CODE/ { write=0; next;}
/^\/\/END_REMOVE_THIS_CODE/ { write=1; next;}
    {
    if(write==1) print $0;
    }
Run Code Online (Sandbox Code Playgroud)