美文网首页
C++ 井号、双井号

C++ 井号、双井号

作者: 全方位小白 | 来源:发表于2020-07-15 23:27 被阅读0次

“有人认为爱是性,是婚姻,是清晨六点的吻,是一堆孩子,也许真是这样的,莱斯特小姐。但你知道我怎么想吗,我觉得爱是想触碰又收回手。” ——塞林格 《破碎故事之心》

前两天看业务代码的时候看到了#号,因为自己从Python转过来,因此总觉得像在看注释。拖了几天,今天就来整理一下C/C++中的 # 与 ##。
下面内容整理自以下博客:
C语言宏与单井号(#)和双井号(##)
C/C++ 中##(两个井号)和#(一个井号)的意思

在C语言的宏中,# 的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。
## 被称为连接符(concatenator),用来将两个Token连接为一个Token。注意这里连接的对象是Token就行,而不一定是宏的变量。比如你要做一个菜单项命令名和函数指针组成的结构体的数组,并且希望在函数名和菜单项命令名之间有直观的、名字上的关系。

由于宏涉及到编译的部分,该部分在编译原理中有较为详细的解释,此处就不赘述了。有兴趣的小伙伴可以去翻龙书~

举个简单的例子:

#define PRINT(n)  printf("token" #n " = %d", game##n)
int token9 = 9;
int game9 = 99;
PRINT(9);

// 相当于:
printf("token9 = %d", game9);

//输出为:
token9 = 99

就酱,over~

相关文章

  • C++ 井号、双井号

    “有人认为爱是性,是婚姻,是清晨六点的吻,是一堆孩子,也许真是这样的,莱斯特小姐。但你知道我怎么想吗,我觉得爱是想...

  • 去掉井号

    const router = new VueRouter({routes:[{path:"/",component...

  • 3.调试与注释

    作者:Barry / 网址:doc.makecode.xyz 注释 单行注释使用井号#,井号后面的文字即为注释 ‌...

  • linux符号含义

    # 井号 (comments) #管理员$普通用户 脚本中 #!/bin/bash#!/bin/sh 井号也常出现...

  • 笨办法学Python ex02

    注释和井号“#” 输入: 运行: 附加题 1/弄清楚”#”号的作用,并且记住它的名字。(中文为井号,英文为 oct...

  • Python入门学习过程(14)

    1. Python中,注释用井号(#)标识,井号后面的内容都会被Python解释器忽略。 2. 列表:...

  • 一日一书

    井桐双照新妆冷, 冷妆新照双桐井。 羞对井花愁, 愁花井对羞。

  • 关于c语言宏定义中的单#(井号)和双#(井号)

    转载自# 三更_雨 看了这篇文章后了解了,但是文章中的例子比较特别,我在这里加个注释好了。 http://www....

  • 2017-12-30

    井号:英45-3-B5 设计井深:1230米 昨天井深: 实际井深:880米 进尺: 井斜:1.4 方位:123....

  • 无标题文章

    一个 井 号表示一级标题 两个 井 号表示二级标题 六个 井 号是最小的 使用四个星号包裹你要加粗的文本 一只乌鸦...

网友评论

      本文标题:C++ 井号、双井号

      本文链接:https://www.haomeiwen.com/subject/tgyshktx.html