と呼ばれる C の関数マクロがあるとしFOO
ます。と という名前の 2 つのマクロもBAR1
ありBAR2
、これらは基本的に同じマクロの 2 つのフレーバーです。を使用する前にどこかで呼び出す関数内とそれ以外の関数BAR
に展開されるようなマクロを書きたいと思います。たとえば、次のようになります。BAR1
FOO
BAR
BAR2
void func1(void)
{
FOO();
...
BAR();
}
と同等です
void func1(void)
{
FOO();
...
BAR1();
}
この機能の間:
void func2(void)
{
BAR();
}
と同等です
void func2(void)
{
BAR2();
}
グローバル変数を導入したり、実行時に追加のチェックを行ったりすることは避けたいと思います。これは可能ですか?