首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

C++可变参数

在使用可变参数时必须要用到三个库函数va_start()、va_arg()和va_end()。使用这三个函数时,必须包含“stdarg.h”(C风格)或者“cstdarg”(C++风格)。...va_start()函数具有两个参数,第一个参数时va_list类型的变量,第二个参数是省略号“...”前面的变量名。该函数的作用是初始化参数个数可变的函数,为取第一个可变的参数做好准备。...函数va_arg()也具有两个参数,第一个参数与函数va_start()的第一个参数相同,第二个参数应该是一个C++中预定义的数据类型,如实例中int。...函数va_end()只有一个参数,该参数必须与函数va_start()的第一个参数相同。该函数的作用是做好取可变实参的收尾工作,以便参数个数可变的函数能够正常返回。...(2)必须使用函数va_start()来初始化可变参数,为取第一个可变参数做好准备工作;使用函数va_arg()依次取各个可变参数值;最后用函数va_end()做好结束工作,以便能正确地返回。

1.8K20

一个printf(结构体指针)引发的血案

四、C语言中的可变参数 在 C 语言中实现可变参数需要用到这下面这几个数据类型和函数(其实是宏定义): va_list va_start va_arg va_end 处理动态参数的过程是下面这 4...个步骤: 定义一个变量 va_list arg; 调用 va_start 来初始化 arg 变量,传入的第二个参数是可变参数(三个点)前面的那个变量; 使用 va_arg 函数提取可变参数:循环从 arg...#include void my_printf_float (int n, ...){ int i; double val; va_list vl; va_start...Step2: 执行 va_start va_start(arg, num); 把上面这语句,带入下面这宏定义: #define _crt_va_start(ap,v) ( ap = (va_list)...3.1 GNU 中的 printf 代码 __printf (const char *format, ...){ va_list arg; int done; va_start (arg,

82620

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券