これはまぁ分かるんだけど、次の例はどういうこと?

#define z(arg3) Z##z(arg3)##Z
z(zzz)

    ↓ 展開結果 by gcc -E

test.c:2:1: pasting ")" and "Z" does not give a valid preprocessing token
Zz(zzz)Z