4

と呼ばれる C の関数マクロがあるとしFOOます。と という名前の 2 つのマクロもBAR1ありBAR2、これらは基本的に同じマクロの 2 つのフレーバーです。を使用する前にどこかで呼び出す関数内とそれ以外の関数BARに展開されるようなマクロを書きたいと思います。たとえば、次のようになります。BAR1FOOBARBAR2

void func1(void)
{
    FOO();
    ...
    BAR();
}

と同等です

void func1(void)
{
    FOO();
    ...
    BAR1();
}

この機能の間:

void func2(void)
{
    BAR();
}

と同等です

void func2(void)
{
    BAR2();
}

グローバル変数を導入したり、実行時に追加のチェックを行ったりすることは避けたいと思います。これは可能ですか?

4

2 に答える 2