C/C++ | 可变参数列表 & 可变参数模板

本文介绍了C/C++中处理可变参数的方法,包括C语言中的宏(如printf)和C++中的模板技术。对于C++,特别提到了使用std::initializer_list作为可变参数的解决方案,以及可变参数模板的应用。
摘要由CSDN通过智能技术生成
可变参数列表

1. stdarg 宏 (C语言)

这些宏定义于stdarg.h文件, 是标准库的一部分. 这个头文件声明了一个类型 va_list三个宏 va_start, va_argva_end.

#include <stdarg.h>

void func(const char *fmt, ...) {
   
    va_list ap;  //声明参数列表
    
    //初始化参数列表, 包含两个参数
    //ap - 之前声明的参数列表
   	//fmt - 函数声明时省略号前的最后一个变量名
    va_start(ap, fmt);

    //访问参数列表 va_arg(参数列表, 当前访问的参数的数据类型)
    //参数类型可能需要已经获得的信息来判断
    //参数列表只能从前往后按顺序逐个访问
    auto a = va_arg(ap, int)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值