Если нам известен тип параметра «x» в макросе «xxx», мы можем переопределить макрос, используя его в функции, а затем определить макрос «xxx» как эту функцию
Исходное определение дляМакрос 'xxx':
#define xxx(x) printf("xxx %s\n",x);
В определенном файле создайте расширенную версию макроса 'xxx':
/* before redefining the "xxx" macro use it in function
* that will have enhanced version for "xxx"
*/
static inline void __body_xxx(const char *x)
{
xxx(x);
printf("enhanced version\n");
}
#undef xxx
#define xxx(x) __body_xxx(x)