Здравствуйте, enji, Вы писали:
E>Есть макрос вида
Точно такой? Как-то подозрительно выглядит.
E>Как можно поправить макрос, чтобы этого избежать?
Передавай функцию в макрос:
X(f);
if (1)
X(g);
А сам макрос уже делается без внешнего if, например, по классической схеме через do { ... } while(0).