我有一个项目,还有一个案例,我有一些经常更改#define
的预处理器来控制它的工作方式——例如:
void myfunction(int num, mystruct* content) {
doSomethingTo(content);
//...
#ifdef FEATURE_X
feature_x(content);
#endif
}
这很好用,虽然每次都必须重新编译,所以它在“每次都必须重新编译的东西”文件中。我想将其推送到 [静态] 库中。我可以更改它的调用方式(已经有一个用于 pick 的函数指针myFunction
),所以我希望它变成
void myfunction(int num, mystruct* content) {
doSomethingTo(content);
//...
}
void myfunction_featureX(int num, mystruct* content) {
doSomethingTo(content);
//...
feature_x(content);
}
我需要在几个地方执行此操作,因此-D FEATURE_X
为每个地方使用一个单独的库(一个有一个没有 )不是一个可接受的选择。我可以通过复制/粘贴来做到这一点,但这会导致代码重用,这会带来修复一个副本而不是另一个副本的错误的风险。