1.宏定义中的#用于把参数转换为字符串,相当于为参数的左右两边加了双引号:
#include <stdio.h>
#define ToString(s) #s
int main(){
char s[] = ToString(1234);
printf("s=%s\n", s);
return 0;
}
运行程序输出:
s=1234
2.宏定义中的##用于连接前后两个参数,将他们变成一个名字:
#include <stdio.h>
#define P(t,x) p##t(x)
void p1(int d)
{
printf("d=%d\n", d);
}
void p2(int d)
{
printf("d:%d\n", d);
}
int main(){
P(1, 20);
P(2, 20);
return 0;
}
运行程序输出:
d=20
d:20
3宏定义中
本文介绍了C语言宏定义中三个特殊的符号:#用于将参数转化为字符串,##用于连接参数形成新名字,\用于多行宏定义。通过示例展示了它们在实际编程中的应用。
订阅专栏 解锁全文
288

被折叠的 条评论
为什么被折叠?



