C++ 中获取 可变形參函数中的參数
2015-12-29 12:56
405 查看
#include <iostream> #include <stdarg.h> using namespace std; int ArgFunc(const char * str, ...) { va_list ap; // 定义參数列表变量 va_start(ap, str); // 确定參数位置。表明从 str 開始获取參数 // 開始获取參数 var_arg(ap, 数据类型) 返回获取的值 cout<<va_arg(ap, int)<<endl; cout<<va_arg(ap, int)<<endl; // 由于仅仅传入两个參数。所以这里获取到的数值为 零 cout<<va_arg(ap, int)<<endl; cout<<va_arg(ap, int)<<endl; va_end(ap); // 将參数列表 ap 清零 return 0; } int main() { ArgFunc("func", 10, 20); // 数据从右往左 压入 栈中 。栈顶元素为 "func" return 0; } /***************************************************** * * 获取可变參数 * * 1. 包括头文件:#include <stdarg.h> * 2. 定义 參数列表变量:va_list ap; * 3. 确定从哪里開始获取数据 va_start(ap, str); 表示在str參数之后開始获取參数。 * 4. 開始获取參数并指明类型,如:va_arg(ap, int); 获取第一个參数。并指明类型为 int * 5. 清空列表 va_end(ap); * ******************************************************/
执行结果:
相关文章推荐
- c/c++指针基础使用
- C++变量的存储持续性、作用域和链接性
- VS2010 c/c++ 本地化 emscripten 配置
- 生命游戏(c语言)
- C++11 sort, vector, lambda——vector 自定义排序
- 梯度下降法的C语言实现
- PC-Lint与CC++代码质量
- 在Visual Studio 2013 中使用C++单元测试
- C/C++语言的存储类型
- C++指针比较的问题
- 微软应该开源的15款产品,记事本、VC++ 在列
- Effective C++:条款25:考虑写出一个不抛异常的swap函数
- C/C++异常捕获try{}catch(...) // __try{ //...}__except(EXCEPTION_EXECUTE_HANDLER){ //...}
- eclipse中编写运行c/c++
- c/c++中动态内存分配处理字符串的细节问题
- 获取目录下所有文件(C/C++)
- CTBCAFBridge hpp 和 cpp 文件分析
- c++下new与delete基础用法
- ROS学习笔记(五)::RVIZ:Markers::Points and Lines (C++)
- c++ 往txt中写入数据