代码如下:
#include <stdio.h>
#define STR(s) #s
#define CONS(a,b) (int)(a##e##b)
int main(){
printf(STR(vck));
printf("\n");
printf("%d\n",CONS(2,3));
return 0;
}
解析:
在本程序中,使用#把宏参数变成一个字符串,用##把两个宏参数贴合在一起。
STR(s)定义的是一个参数s表示的字符串,在主函数的调用中,STR(vck)实际表示的就是字符串“vck”。
代码第4行CONS(a,b)定义的是一个将参数a与b按aeb连接起来的一个整型值,CON(2,3)实际表示就是整型值2e3,也就是十进制数2000。
所以最后显示的结果是:
vck
2000