Я в замешательстве, почему это расширение макроса не может быть правильно развернуто? Я пытаюсь запустить вложенные макросы несколько раз.
#define RUN1TIMES(MACRO, param) MACRO(param)
#define RUN2TIMES(MACRO, param) RUN1TIMES(MACRO, param) MACRO(param)
#define MACROA(param) param
#define MACROB(param) b = RUN1TIMES(MACROA, param)
#define MACROC(param) c = RUN2TIMES(MACROB, param)
MACROC(test);
Запуск gcc -E
:
c = b = RUN1TIMES(MACROA, param) b = test;
Желаемый результат (не вменяемый C, а просто для демонстрации выпуск)
c = b = test b = test;