/*
宏练习
*/
#include
#define STR(n,m) #n#m
#define LOCAL(n) l_##n
int main() {
int LOCAL(num) = 0;
printf("STR(abc)是%s\n", STR(abc,def));
LOCAL(num) = 3;
printf("%d\n", LOCAL(num));
return 0;
}
#是字符串化,##是字符串连接
结果是:
STR(abc):abcdef
3
我感觉第一个宏是拼接字符串
第二个就表示一个变量,但是这两个的原理我有点愚钝,完全看不懂。