Czy jest możliwe iterowanie argumentów w makrach variadic?
Zastanawiałem się, czy możliwe jest iterowanie argumentów przekazywanych do makra variadic w C99 lub używanie jakichkolwiek rozszerzeń GCC?
Na przykład czy jest możliwe napisanie ogólnego makra, które pobiera strukturę i jej pola przekazywane jako argumenty i wypisuje offset każdego pola w strukturze?
Coś takiego:
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; }