#include #define T(t) (t*)0; #define F(t,n) {t *y = &x.n;} static void f() { T(gid_t) T(size_t) { struct group x; F(char*, gr_name) F(gid_t, gr_gid) F(char**, gr_mem) } {void(*p)(void) = endgrent;} {struct group*(*p)(void) = getgrent;} {struct group*(*p)(gid_t) = getgrgid;} {int(*p)(gid_t,struct group*,char*,size_t,struct group**) = getgrgid_r;} {struct group*(*p)(const char*) = getgrnam;} {int(*p)(const char*,struct group*,char*,size_t,struct group**) = getgrnam_r;} #ifdef _XOPEN_SOURCE {void(*p)(void) = setgrent;} #endif }