c/c++宏展开规则

本文总结了C/C++宏展开的规则,包括#用于生成字符串,##用于连接两个标识符,宏不能自引用,以及展开顺序。通过实例分析加深理解,适合初学者和进阶者查阅。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近利用visual studio 2019研究了一下宏展开的规则,作为宇宙第一IDE,非常好用,下面来总结一下学习成果。

总体概述

在举例分析之前,先对规则进行一个总体的概述。总的来说,宏展开的规则有以下几点:

  1. #表示生成字符串,将一个参数转换为一个字符串;
  2. ##表示连接,将两个token连接成一个;
  3. 宏不能自引用;
  4. 先展开#,再展开##,再展开宏参数,最后将展开的宏参数代入。

例子

下面通过一些例子来分析上面的规则,方便理解。

#表示生成字符串

在这里插入图片描述
注意,上图中,“扩展到:”后面会直接给出宏展开的结果,非常方便。

#后面只能跟宏参数

如果宏定义中,没有在#后跟上宏参数,vs会给出错误信息:
在这里插入图片描述

##表示连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值