C++ 多参函数的实现方式
来源:互联网 发布:尊重网络主权 编辑:程序博客网 时间:2024/05/21 10:35
#include "stdafx.h"#include <stdio.h>#include <stdarg.h>/*多参函数的实现: 像 printf 这种多参函数, 是借用 stdarg.h 中的宏实现的.va_list:用于遍历参数列表的指针va_start:让指针指向第一个参数va_arg:获取下一个参数,并向后移动一个位置va_end:释放指针,完成遍历*/int sum(int n1, ...){int out = n1;/* 定义一个指向参数列表的指针, 必须是 va_list 类型 */va_list p;/* 把指针指向最后一个明确的变量 */va_start(p, n1);/* 用 va_arg 获取下一个整数值, va_arg 会同时把指针向后移动整数大小的位置 *//* 本例是假定参数都是整数值, 遇 0 终止; 这样在使用是最后一个参数必须是 0 */while ((n1=va_arg(p,int)) != 0)out += n1;va_end(p);return out;}static const int kMaxLogLen = 16*1024;void OGLogger(const char* format, ...){char buffer[kMaxLogLen] = {0};va_list p;va_start(p, format);vsprintf(buffer, format, p);va_end(p);printf("%s", buffer);//CCLog("%s", buffer);}int _tmain(int argc, _TCHAR* argv[]){printf("%d\n", sum(2,2,2,2,2,2));OGLogger("This is for test = %d \n", 60);return 0;}
对于下面的输出函数的使用,我们可以对其进行输出控制,常用语日志控制输出使用。
0 0
- C的方式实现可变参数函数
- C++ 多参函数的实现方式
- strlen函数C语言版的几种实现方式
- 【C++】函数的传递方式
- C方式实现C++纯虚函数
- 虚函数的实现方式
- 消息函数的实现方式
- swap函数的实现方式
- C语言可变参函数的实现
- c&c++函数变参的实现
- C语言变参函数的实现
- C语言 memcpy函数(增加dst 从第一字节拷贝判断)的内部简单实现方式
- C语言函数调用方式的区别
- c++:(各种)构造函数的调用方式
- 多态的实现方式,继承与模版函数
- C语言实现字符串拷贝函数有几种方式
- jpeg_to_yuv函数的C实现
- C常用函数的实现
- UITableView的基础知识——IOS
- Web前端开发视频教程
- Packrat:将你的代码和R包一起打包
- json解析为什么是eval("("+data+")")
- 使用X-UA-Compatible来设置IE浏览器兼容模式
- C++ 多参函数的实现方式
- 在目录下查找某内容
- 第三周编程作业1-奇偶个数
- linux内核mount系统调用源码分析
- mvvm+DataSet使编程变得简单
- 61条Java面向对象设计的经验原则
- WNDOWS编程获取系统磁盘序号及硬件ID
- linux获取时间和时区函数
- 某银行高级软件需求分析师内训圆满结束!