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---胡枝子
例
二次
#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
}
二次
产出:
二次
3
a
1.999
42.5
二次
另见
c变量函数的文档
*。
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。