码迷,mamicode.com
首页 > 其他好文 > 详细

#include <stdarg.h>

时间:2015-04-16 19:41:15      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

名称描述相容  // 作用描述

va_start使va_list指向起始的参数  

va_arg检索参数C89

va_end释放va_list

va_copy拷贝va_list的内容

实例解析:

#include <stdio.h> #include <stdarg.h> void printargs(int arg1, ...) /* 输出所有int类型的参数,直到-1结束 */  //参数列表中, 后面的元素类型不一定,va_arg()函数的返回类型决定的 {    

va_list ap;//va_list 是数据类型     int i;

va_start(ap, arg1); //两个参数:第一个参数为va_list 数据类型的变量,第二个参数为函数第一个参数的名称     // 接着每一调用va_arg就会返回下一个参数,     for (i = arg1; i != -1; i = va_arg(ap, int)) //va_arg的第一个参数为va_list,第二个参数为返回的数据类型     printf("%d ", i);     double f;     f  = va_arg(ap,double);    printf("\t浮点型的数据%lf",f);     va_end(ap); //最后va_end必须在函数返回前被va_list呼叫(     putchar(‘\n‘); } //va_copy,它能够复制va_list而va_copy(va2, va1)意思为拷贝va1到va2。 int main(void) { printargs(5, 20, 14, 84, 97, 15, 24, 48, -1,0.123); printargs(84, 51, -1,0.234); printargs(-1,34.22); printargs(1, -1,23.23); return 0; }

自己赋值粘贴运行;

#include <stdarg.h>

标签:

原文地址:http://www.cnblogs.com/201307072xia/p/4432767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!