博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可变参数的函数(c++)【转载】
阅读量:2288 次
发布时间:2019-05-09

本文共 757 字,大约阅读时间需要 2 分钟。

摘自《c语言精彩编程百例》,要定义可变参数的函数,在c++当中当包含<cstdarg>,在c语言当中当包含<stdarg.h>,使用任何可变长度的变元被访问之前,必须先用va_start()初始化变元指针argptr,argptr用va_list宏类型定义。初始化argptr后,经过va_arg()的调用,以作为下一个参数类型的参数类型,返回参数,最后取完所有参数并从函数返回之前,必须调用va_end()。如果未正确使用va_end(),程序可能瘫痪

   

#include<iostream>

#include <cstdarg>

using namespace std;

   

double sum_series(int num, ...);

   

int main()

{

      double d;

      //在子函数实际调用中共有五个参数,第一个为序列个数,其后为相加的各个数

      d = sum_series(4, 0.5, 0.25, 0.125, 0.06254);

      cout << "Sum of series is " << d << endl;

      return 0;

}

   

double sum_series(int num, ...)

{

      double sum = 0.0, t;

      va_list argptr;            //定义参变量

       

      //初始化argptr

      va_start(argptr, num);

   

      //计算序列之后

      for (; num;num--)

      {

            t = va_arg(argptr, double);

            sum += t;

      }

   

      va_end(argptr);            //序列关闭

      return sum;

}

转载于:https://www.cnblogs.com/liusuanyatong/p/11259907.html

你可能感兴趣的文章
MinGW Static and Dynamic Libraries
查看>>
调用dll
查看>>
Linux统计文件行数
查看>>
linux查看文件和文件夹大小
查看>>
linux下C获取文件的大小
查看>>
linux C文件到文件,文件到文件夹,文件夹到文件夹的拷贝
查看>>
linux grep命令
查看>>
Linux GCC常用命令
查看>>
linux环境变量set env export细解
查看>>
Python之os.walk和os.path.walk
查看>>
python 之 分割参数getopt
查看>>
内存映射文件原理探索
查看>>
linux shell 字符串操作
查看>>
shell 逻辑运算符、逻辑表达式
查看>>
数据挖掘学习—孤立点分析(异类分析)
查看>>
一致性hash算法 - consistent hashing
查看>>
Linux directory structure
查看>>
如何使用git回退部分修改
查看>>
pytho获取磁盘剩余空间
查看>>
linux 普通用户添加ssh或禁止ssh
查看>>