私にはプロジェクトがあり、それがどのように機能するかを制御する、頻繁に変更されるプリプロセッサがいくつかある場合があり#define
ます-例:
void myfunction(int num, mystruct* content) {
doSomethingTo(content);
//...
#ifdef FEATURE_X
feature_x(content);
#endif
}
これは問題なく動作しますが、毎回再コンパイルする必要があるため、「毎回再コンパイルする必要があるもの」ファイルにあります。代わりに [静的] ライブラリにプッシュしたいと思います。私はそれがどのように呼び出されるかを変更しても大丈夫です(すでにピッキングのための関数ポインタを持っていますmyFunction
)ので、それを
void myfunction(int num, mystruct* content) {
doSomethingTo(content);
//...
}
void myfunction_featureX(int num, mystruct* content) {
doSomethingTo(content);
//...
feature_x(content);
}
これをいくつかの場所で行う必要があるため、それぞれに別のライブラリ ( があるものとないもの-D FEATURE_X
) を使用することは、受け入れられるオプションではありません。コピー/貼り付けでそれを行うこともできますが、コードの再利用が発生し、一方のコピーではバグが修正されても、他方では修正されないというリスクが伴います。