turner (02/24/83)
#N:ucbesvax:5200001:000:661 ucbesvax!turner Feb 23 01:18:00 1983 /* * Does this work on your compiler? The output should be as follows: foo[0].name=hello, foo[0].val=1 foo[1].name=goodbye, foo[1].val=2 * I would appreciate any and all responses to this question. Basically, * I'm interested in the portability of these macro definitions. */ #define QUOTE(f) \ "\ f\ " #define str_sym(sym) QUOTE(sym), &sym int hello = 1, goodbye = 2; struct { char * name; int * val; } foo [2] = { str_sym(hello), str_sym(goodbye) }; #define printv(x)\ printf("%s.name=%s, %s.val=%d\n",\ QUOTE(x),\ x.name,\ QUOTE(x),\ *(x.val)) main() { printv(foo[0]); printv(foo[1]); }