¿Es posible iterar sobre argumentos en macros variadic?
Me preguntaba si es posible iterar sobre los argumentos pasados a una macro variadic en C99 o usar alguna extensión GCC?
Por ejemplo ¿Es posible escribir una macro genérica que tome una estructura y que sus campos pasen como argumentos e imprima el desplazamiento de cada campo dentro de la estructura?
Algo como esto:
struct a { int a; int b; int c; }; /* PRN_STRUCT_OFFSETS will print offset of each of the fields within structure passed as the first argument. */ int main(int argc, char *argv[]) { PRN_STRUCT_OFFSETS(struct a, a, b, c); return 0; }