это можно назвать макрос внутри макроса таким образом:Как вызвать макрос внутри макроса?
#include <stdio.h>
#define AA(a1, a2) a1, 3, 5, a2
#define BB(x, y1, y2, y3, y4) { printf("%d %d %d %d %d\n",x, y1, y2, y3, y4); }
int main()
{
int n = 21, k= 11;
BB(31, AA(n,k));
}
этот код возвращает ошибку followinf в сборнике:
test_macro.c: В функции «главный»:
test_macro.c: 9: 18: erreur: macro «BB» requiert 5 аргументов, mais seulement 2 ont été passés
test_macro.c: 9: 4: erreur: 'BB' uneclared (первое использование в этой функции)
test_macro .c: 9: 4: примечание: каждый необъявленный идентификатор tifier сообщается только один раз для каждой функции появляется в
Вы действительно не хотите окончания '}'? –
Что происходит, когда вы пытаетесь? – dbush
Опустите точку с запятой после макроса, или - лучше - если вы используете gcc, скопируйте весь макрос тела (нестандартный), чтобы сделать это выражение. – Olaf