吾爱程序员:这里有好玩的游戏和软件
当前位置:首页C语言教程 → 编写一个打印 x 的 C 宏 PRINT(x)

编写一个打印 x 的 C 宏 PRINT(x)

来源:网络 | 更新时间:2022-01-11 08:03:11
乍一看,编写一个打印其参数的 C 宏似乎是小菜一碟。以下程序应该可以工作,即它应该打印x
#define PRINT(x) (x)
int main()
{ 
printf("%s",PRINT(x));
return 0;
}
但它会产生编译错误,因为x的数据类型,编译器将其作为变量,是未知的。现在看起来不那么明显了。不是吗?你猜怎么着,下面的也行不通
#define PRINT(x) ('x')
#define PRINT(x) ("x")
但是,如果我们知道 C 语言的一个鲜为人知的特性,那么编写这样的宏真的是小孩子的游戏。?在 C 中,有一个 # 指令,也称为“字符串化运算符”,它可以做到这一点。基本上 # 指令将其参数转换为字符串。瞧!剩下的事情就是这么简单。所以上面的程序可以修改如下。
#define PRINT(x) (#x)
int main()
{ 
printf("%s",PRINT(x));
return 0;
}
现在,如果输入是PRINT(x),它将打印x。事实上,如果输入是PRINT(52cxydh),它将打印52cxydh    

最新文章

热点资讯

手游排行榜

CopyRight 2020-2030吾爱程序员

鄂ICP备2021004581号-8

本站资源收集于网络,如有侵权请联系我们:35492删除0109@qq.com