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

前两天看业务代码的时候看到了#号,因为自己从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++ #号、##号相关推荐

  1. 如何完成网课公号号搭建——小白教程!内附网课题库接口

    如何完成网课公号号搭建--小白教程!内附网课题库接口 本平台优点:免费查题接口搭建 多题库查题.独立后台.响应速度快.全网平台可查.功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题 ...

  2. 银行卡的卡号号段标识

    银行卡的卡号是标识发卡机构和持卡人信息的号码,由以下三部分组成:发卡行标识代码(BIN号).发卡行自定义位.校验码.各个银行机构所发行的银行卡卡号都是不同的,你在全世界都不会找到任何一张重样的银行卡, ...

  3. erlang 中#(井号)号的作用

    表示进制 10> 2#101010. %% 2 进制的 101010 42 11> 8#0677. %% 8 进制的 0677 447 12> 16#AE. %% 16 进制的 AE ...

  4. 微信公众号号开发(Java)

    使用java开发微信公众号  注意: 我们都知道学习使用只能申请[订阅号],但是,我们申请的是个人(没有认证).这就造成了一下问题:由于用户体验和安全性方面的考虑,微信公众号的注册有一定门槛,某些高级 ...

  5. java(6)——+号和++号--号

    + 加号如果两边有任意一边是字符串,那么加号的作用就是拼接. public class AddTest{public static void main(String[] args){int a = + ...

  6. 北斗二号 号 RDSS 接收机数据接口要求(2.1 版)

    规定北斗卫星导航系统与终端之间的数据接口相关要求. 适用于北斗卫星导航系统与应用研究.

  7. 如何快速将微信公众号留言嵌入到CSDN博文中?

    简 介: 博文留言对于将文章的读者进行联系,也增加了文章内涵的另外 一个维度.对于多平台下博文展现,特别是对公众号的留言转帖到CSDN文章中,可以增加不同平台读者之间的联系.本文给出了一个对公众号留言 ...

  8. 「实用」微信扫码 - 关注公众号后网站自动登录

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:用好Java中的枚举,真的没有那么简单!个人原创+1博客:点击前往,查看更多 作者:destiny 链接:htt ...

  9. 跟各位读者朋友分享下公众号运营策略

    大家好,我是若川.欢迎加我微信 ruochuan12,加群交流学习.目前我的公众号运营策略,分享给各位读者朋友.点击下方卡片关注我,或者查看源码等系列文章. 可能大多数关注的人不知道,我的公众号取名为 ...

  10. 计算机仿真课程设计四号题,上海电力学院电子线路计算机仿真课程设计报告

    上海电力学院电子线路计算机仿真课程设计报告 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 17.90 积分 上上 海海 电电 力力 学学 院院课程 ...

最新文章

  1. 情感分析的现代方法(包含word2vec Doc2Vec)
  2. Codeforces Gym 101173 CERC 16 D BZOJ 4790 Dancing Disks
  3. 机房收费系统之导出Excel
  4. 理论 | 当 Spring Boot 遇上了消息队列......
  5. Django中的Object Relational Mapping(ORM)
  6. 工程实践:给函数取一个好的名字
  7. 服务器监控之 ping 监控
  8. linux下常用的dns软件,Linux常见应用--DNS服务器常见应用实现
  9. STATA如何查看、改变文件的工作路径
  10. 阿里开源软件替换指南 1
  11. 2. Spring早期类型转换,基于PropertyEditor实现
  12. Multi-Objective Computation Sharing in Energy and Delay Constrained Mobile Edge Computing
  13. CentOS 8.2安装Raid卡驱动
  14. 洛谷P1233 木棍加工
  15. 超详细的纯CSS的照片墙特效
  16. OpenWrt配置打印服务器无线桥接,手机无线打印
  17. 色彩的基本原理——正色和负色
  18. 拯救非洲的粮食危机,机器学习做了这些!
  19. 不要讨要共享单车押金了,没用
  20. VB多层防火墙技术的研究-状态检测

热门文章

  1. 从支付宝的年度账单说起
  2. 申请无数个iTunes 帐号的简易方法
  3. 长时间戴耳机对耳朵的危害有多大?骨传导耳机对耳朵影响最小?
  4. 配置H3C交换机telnet登录
  5. 使用cmd安装pygame
  6. 在Win7提升网络速度
  7. 选对电商项目管理软件,交一份双11漂亮答卷
  8. 北邮赵玉平教授百家讲坛《曹操的启示》摘录
  9. redis 学习(17) -- RDB
  10. codechecker 怎么用?