#define XMK_STR(x) #x
#define MK_STR(x) XMK_STR(x)
首先我知道这个宏是用来把x转换成字符串。
我的疑问是 :
1.如果使用这两个宏,是没有问题的。
#define CONFIG_BAUDRATE 115200
unsigned char a[]=MK_STR(CONFIG_BAUDRATE);
printf("a:%s\n", a);
输出 a:115200
2.如果改成用一个宏实现
#define MK_STR(x) #x
则输出 a:CONFIG_BAUDRATE
怎么会这样呢? 请各位赐教。
我在虚拟机下fedora 8测试的