|
例子程序如下,程序是网上找的,编译运行后输出的是 :
PASTE = abcdefkjSS(n)
程序源码:
#include <stdio.h>
#define PASTE(n) "abcdefkj"#n
int main()
{
int n = 16;
printf("PASTE = %s",PASTE(n));
system("pause");
return 0;
}
也看到了这样的说法,但尝试了,DeviceID 这个是宏时,可以展开,如果定义为 int DeviceID = 0x33; 输出结果就不能展开了
/*********************************
xxx@ubuntu:~/Desktop/NXP_Demo/driver/upload/gpio$ ./test
33
0x33
xxx@ubuntu:~/Desktop/NXP_Demo/driver/upload/gpio$ gcc -o test test.c
xxx@ubuntu:~/Desktop/NXP_Demo/driver/upload/gpio$ ./test
33
DeviceID
***********************************/
#include <stdio.h>
#define DeviceID 0x33
#define ID(x) #x
#define IDStr(x) ID(x)
int main(void)
{
printf("%0x\r\n", DeviceID);
printf("%s\r\n", IDStr(DeviceID));
return 0;
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|