预处理器(未整理)

带参数的宏

带参数的宏(也称为函数式宏)的定义有如下格式:
#define 标识符(x1, x2, x3,......,xn) 替换列表
使用带参数的宏替代真正的函数有两个优点:
  • 程序可能会稍微快些
  • 宏更“通用”
带参数的宏也有一些缺点:
  • 编译后的代码通常会变大
  • 宏参数没有类型检查
  • 无法用指针指向一个宏
  • 宏可能会不止一次地计算它的参数
#运算符将宏的一个参数转换为字符串字面量。它仅允许出现在带参数的宏的替换列表中。
##运算符可以将两个记号(如标识符)“粘合”在一起,称为一个新记号。

宏可以使用#undef指令“取消”定义。取消现有宏的定义,以便重新给出新的定义。
对于在一个宏定义中哪里要加圆括号有两条规则要遵守:
  • 首先,如果宏的替换列表中有运算符,那么始终要将替换列表放在括号中
  • 其次,如果宏有参数,每个参数每次在替换列表中出现时都要放在圆括号中



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值