预定义中使用转义字符!
#define A 2#define paste(a) #a
#define ps(a,b) a##b
int main(){
printf("test1: %s \n",paste(ps(ps(ps(A,B),C),D)));
printf("test2: %s \n",paste(ps(ps(ps(\A,B),C),D)));
printf("test3: %s \n",paste(ps(ps(p\s(\A,B),C),D)));
printf("test4: %s \n",paste(ps(ps(p\\s(\A,B),C),D)));
printf("test5: %s \n",paste(ps(p\s(p\s(A,B),C),D)));
printf("test6: %s \n",paste(ps(p\s(p\s(\A,B),C),D)));
printf("test7: %s \n",paste(ps(p\\s(ps(\A,B),C),D)));
return 0;
}
输出结果如下:
test1: 2BCD
test2: ABCD
test3: ps(2 ,B)CD
test4: ps(A,B)CD
test5: ps(ps(2 ,B),C)
test6: ps(ps(2 ,B),C)
test7: ps(AB ,C)D
哪位大神帮忙分析下为什么转义符号在不同的地方,出现了不同的结果!!!