C语言中的变参宏:(...)与__VA_ARGS__怎么使用

宏是通过预处理器在程序运行前执行的,宏由三个部分组成,第一部分是#define预处理指令,第二部分是选定的缩写,也称为宏,第三部分称为替换体,或替换列表:#define(预处理指令) MAX(选定的缩写) 5(替换体),宏的起名规则跟其他变量的规则一样,由数字,字符,下划线组成,其中不能首字符不能是数字,宏分为两大类,一类是类对象宏,一类是类函数宏,好了,宏的基本知识讲到这里就结束先了,现在我们来讲讲变参宏的使用,我们先给出一个声明:#define MAX(x,..) printf("HELLO,"#x"=%d"__VA_ARGS__)
这个变参宏是属于一个类函数宏的范围。
我们声明了一个变参宏,下面我将列出一个简单的程序来说明使用:

#include <stdio.h>
#define MAX(x,...)   printf(" HELLO,"#x"=%d "__VA_ARGS__)

int main(void)
{
		int x1=4;
		int y=5,h=3;
		
		MAX(x1,"y=%d,h=%d",x1,y,h );
		return 0;
}

如以上代码所示,(…)代表了你可以在调用宏的参数列表中无限添加参数,最终会由替换体来代替,其中替换体的#x是字符串化的意思,调用宏的形参里是什么他就会显示什么,比如这里形参是x1,他会显示x1=,那么你将形参改为x2也是显示x2的,这个叫字符串化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值