遇到了这个问题的解决方法:
添加一个转换的宏就行
:#define toS(A) #A
:#define N 66
:#define Join(a,b) (a##b)
printf("%s\n",toStr(N)); //预想结果--->"66" 实际结果:N
printf("%d\n",SJoin(N,N)); //预想结果--->6666 实际结果:NN
添加一个转换
:#define toS(A) #A
:#define _toS(A) toStr(A)
:#define _Join(a,b) (a##b)
:#define Join(a,b) _S(a,b)
:#define N 66
printf("%s\n",toS(N)); //预想结果--->"66" 实际结果:"66"
printf("%d\n",Join(N,N)); //预想结果--->6666 实际结果:6666
展开的意思是:toS(N) ---> _toS(66) --->#66--->"66"
展开的意思是:Join(N,N) ---> _Join(66,66) --->66##66--->6666