ネストされたマクロが機能する場合と機能しない場合があるのはなぜですか?
ケース 1:
#define name(val) #val
#define name2(front, back) name(front ## back)
...
printf("%s\n", name2(foo, bar)); // foobar
ケース 2:
#define paste(front, back) front ## back
#define name(val) #val
#define name2(front, back) name(paste(front, back))
...
printf("%s\n", name2(foo, bar)); // paste(foo, bar)