首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Variadic functions

变量函数为函数%28。std::printf%29可变参数数...

要声明变量函数,使用省略号作为最后一个参数。int printf(const char* format, ...);.见变元有关语法、自动参数转换和替代方法的其他详细信息。

为了从函数体访问变量参数,提供了以下图书馆设施:

在标头中定义<cstdarg>

*。

Va[医]启动启用对变量函数参数%28的宏%29的访问

Va[医]arg访问下一个变量函数参数%28宏%29。

Va[医]复制%28C++11%29复制变量函数参数%28函数宏%29

Va[医]变量函数参数%28宏%29的末端遍历

Va[医]列表保存了va所需的信息。[医]开始,VA[医]阿格河[医]结束,和VA[医]拷贝%28---胡枝子

二次

代码语言:javascript
复制
#include <iostream>
#include <cstdarg>
 
void simple_printf(const char* fmt...)
{
    va_list args;
    va_start(args, fmt);
 
    while (*fmt != '\0') {
        if (*fmt == 'd') {
            int i = va_arg(args, int);
            std::cout << i << '\n';
        } else if (*fmt == 'c') {
            // note automatic conversion to integral type
            int c = va_arg(args, int);
            std::cout << static_cast<char>(c) << '\n';
        } else if (*fmt == 'f') {
            double d = va_arg(args, double);
            std::cout << d << '\n';
        }
        ++fmt;
    }
 
    va_end(args);
}
 
int main()
{
    simple_printf("dcff", 3, 'a', 1.999, 42.5); 
}

二次

产出:

二次

代码语言:javascript
复制
3
a
1.999
42.5

二次

另见

c变量函数的文档

*。

代码语言:txt
复制
 © cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券