|
例子程序如下,程序是网上找的,编译运行后输出的是 :
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周年了!感谢大家的支持与爱护!!
阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)
|