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
あり、そこで動作をオーバーライドすることもできるはずです。
これを達成できるマクロに代わるものはありますか?