C语言中的可变参数
来源:互联网 发布:淘宝怎么打开淘口令 编辑:程序博客网 时间:2024/06/07 12:17
我在学C语言的时候对函数printf()特别好奇,因为它后面的参数是可以变的,很长一段时间我也不明白这是怎么实现的,现在附带说明,写得有点不伦不类:
# include<iostream># include<stdarg.h>using namespace std;double Add(int first, ...) { va_list para; va_start(para, first); double sum = first;sum += va_arg(para, int);sum += va_arg(para, double);sum += va_arg(para, double);va_end(para);return sum;} int main(){ printf("%.1lf\n", Add(1, 3, 3.1, 3.2)); system("PAUSE"); return 0;}
关键使用到了三个宏,va_start(),va_arg(),va_end(),以及一个va_list类型,这三个宏定义在stdarg.h中。这是C标准库的一部分。
va_start(va_list para, first_argu) 这个宏类似于创建一个“流”对象,并要用可变参数前面的一个参数初始化。具体实现我也不清楚。
va_arg(va_list para, type) 这个宏类似于从“流”中提取可变参数,type是可变参数类型。
va_end(para) 关闭“流”
- C语言中的可变参数
- C语言中的可变参数
- C语言中的可变参数
- C语言中的可变参数
- C语言中的可变参数
- c语言中的可变参数
- C语言中的可变参数
- C语言中的可变参数
- C语言中的可变参数
- c语言中的可变参数
- C语言中的可变参数。
- C语言中的可变参数。
- C语言中的可变参数
- C语言中的可变长参数(转载)
- C语言中的可变参数函数
- C语言中的可变参数函数
- C语言中的参数可变函数
- va_list : C语言中的可变参数
- C uint Test
- 巧用缓冲将循环体的内容写入变量
- const关键字的深入理解
- C++中的操作符重载
- 【笔记】C++预处理命令
- C语言中的可变参数
- Switch Off the Touchpad(SONY VPCSD1S4C)
- C++模板深入理解
- Java中的可变参数
- Revit 高效对象过滤深入讲解 下载
- 字符串匹配算法
- 【黑马程序员】java编程基础,面向对象
- C++ virtual关键字理解
- NeHe OpenGL教程 第六课 纹理映射