C++可变参数
来源:互联网 发布:centos安装snmp服务 编辑:程序博客网 时间:2024/06/06 07:01
这个东西很少用,每次都要到处找,所以这里做个记录。
可变参数值得是类似c语言里的printf(const char* format, ...)这样的参数,其中...表示参数个数可变。
宏也同样支持这样使用:
宏中的用法:#define LOG_OUT(format, ...) printf(format, ##__VA_ARGS__) 其中__VA_ARGS__表示可变参数。
在程序中,是通过var_start var_end var_arg 来获取...中的参数:
{ char tmp[1024]; memset(tmp, 0, 1024); va_list pArgList; va_start(pArgList, format); vsnprintf(tmp, 1024, format, pArgList); va_end(pArgList); return std::string(tmp);}
如果需要取得每一个参数可以使用var_arg,它需要传入一个va_list的变量和类型。如:如果需要int,可以这样调用
int a = va_arg(pArgList, int);
1 #include <cstdio> 2 #include <cstdlib> 3 #include <cstdarg> 4 5 void logMultiArgsOfInt(int num, ...) 6 { 7 va_list list; 8 va_start(list, num); 9 for (int i = 0; i < num; ++i) { 10 int t = va_arg(list, int); 11 printf("%d\n", t); 12 } 13 va_end(list); 14 } 15 16 int main(int argc, char **argv) 17 { 18 logMultiArgsOfInt(5, 1, 2, 3, 4, 5); 19 return 0; 20 }
0 0
- c可变函数参数
- C可变参数宏
- c语言可变参数
- C可变参数函数
- C/C++可变参数
- C 可变参数
- C语言可变参数
- C语言可变参数
- C语言可变参数
- C宏 可变参数
- c可变参数研究
- C可变参数
- C可变参数个数
- C中的可变参数
- C可变参数详解
- 可变参数宏.c
- C中的可变参数
- c语言可变参数
- 快速查找素数
- java的类:0
- luasocket系列之winsocket基础补充—winsock库1
- iOS中蓝牙的实现方案
- 随机生成测试数据(rand(),srand())
- C++可变参数
- 【剑指Offer学习】【面试题34:丑数】
- 黑马程序员-----正则表达式
- Linux转发性能评估与优化-转发瓶颈分析与解决方案(补遗)
- Free Fortran Compilers
- Thking in Java---数组详解
- 根据排队论阐述路由器和高速公路的拥堵以及拥堵缓解问题(二)
- 一道CTF
- android 杀不死的服务