c++函数中参数是省略号的说明与用法

在项目中,会遇到参数是省略号的函数, 这表述在告诉编译器,在函数调用时不检查该函数的实参与行参的个数和类型是否相同。


如何生声明函数:

void foo(int first, ...);

使用注意:在定义函数时,第一个参数必须指定类型。像 void foo(...) 就是错的。


如何定义函数:

#include<stdarg.h> //需要的头文件
void foo(int first, ...)
{
	printf("first: %d\n", first);
	va_list arg_ptr;
	va_start(arg_ptr, first);
	
	int next_parm;
	do {
		next_parm = va_arg(arg_ptr, int);
		printf("next_parm : %d\n", next_parm);
	} while(next_parm)
	va_end(arg_ptr);
}

上面用到了 va_list类型, va_start, va_arg, va_end函数。

va_start函数将参数啊arg_ptr设置成可变参数列表的第一个参数,并且arg_ptr必须是va_list类型的。
va_arg函数将返回arg_ptr指向参数的值,并指向下一个参数。
va_end函数一般在函数结束时调用,作用将arg_ptr指向空。


如何调用函数:
foo(1, 2, 3, 4, 0);
注意:函数最后必须以零结尾。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值