栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言中的# ##

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言中的# ##

************c macro Stringizing operator (#)
This operator causes the corresponding actual argument to be
enclosed in double quotation marks.
//对应的对应参数为到双引号括起来
#include
#define mkstr(s) #s
int main(void)
{
printf(mkstr(geeksforgeeks));
return 0;
}

***Token-pasting operator (##)
Allows tokens used as actual arguments to be concatenated to form other tokens
作为真正参数的标记可以连接为其他标记
This is called token pasting or token concatenation. The ‘##’ pre-processing operator performs token pasting.
//执行标记粘贴
When a macro is expanded, the two tokens on either side of each ‘##’ operator are combined into a single token,
//展开宏时,##两边的token合成为一个
which then replaces the ‘##’ and the two original tokens in the macro expansion
#include
#define concat(a, b) a##b
int main(void)
{
int xy = 30;
printf("%d", concat(x, y));
return 0;
}

This operator causes the corresponding actual argument to be enclosed in double quotation marks.
The # operator, which is generally called the stringize operator, turns the argument it precedes into
a quoted string.
#include
#define mkstr(s) #s
int main(void)
{
printf(mkstr(geeksforgeeks));
return 0;
}

Allows tokens used as actual arguments to be concatenated to form other tokens. It is often useful to merge
two tokens into one while expanding macros. This is called token pasting or token concatenation. The ‘##’
pre-processing operator performs token pasting. When a macro is expanded, the two tokens on either side of
each ‘##’ operator are combined into a single token, which then replaces the ‘##’ and the two original tokens in the macro expansion.
#include
#define concat(a, b) a##b
int main(void)
{
int xy = 30;
printf("%d", concat(x, y));
return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444114.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号