C Сбой расширения макроса - PullRequest
       17

C Сбой расширения макроса

0 голосов
/ 30 января 2020

Я в замешательстве, почему это расширение макроса не может быть правильно развернуто? Я пытаюсь запустить вложенные макросы несколько раз.

#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;
...