C ファイルでマクロを定義し、この定義を使用して別の C ファイルの動作を変更することはできますか?
たとえば、次の名前のファイルがあるとしますb.c。
#include <stdio.h>
#define ABC
void function() {
printf("b.c\n");
}
そして、次の名前の別のファイルa.c:
#include <stdio.h>
int main() {
#ifdef ABC
printf("b.c defined this\n");
#endif
printf("a.c\n");
}
これらのファイルは一緒にコンパイルされます。ABC in の定義がb.cに影響を与えることを望んでいますa.c。
ヘッダー ファイルを使用することになっていたことはわかっていますが、そうしたくありません。これを達成する別の方法はありますか?
私のシナリオでb.cは、 は の動作を補完する一種のサブアプリケーションでa.cあり、そこで動作をオーバーライドすることもできるはずです。
これを達成できるマクロに代わるものはありますか?