偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
/* stdarg.h
Definitions for accessing parameters in functions that accept
a variable number of arguments.
Copyright (c) Borland International 1987,1988
All Rights Reserved.
*/
#if __STDC__
#define _Cdecl
#else
#define _Cdecl cdecl
#endif
#if !defined(__STDARG)
#define __STDARG
typedef void *va_list;////////
#define va_start(ap, parmN) (ap = ...)
#define va_arg(ap, type) (*((type *)(ap))++)
#define va_end(ap)
#define _va_ptr (...)
#endif
/*
[交流]形参数目可变函数的例子
[释义]
形参1:后续形参的个数
形参2,4,6,...:加数(int型)
形参3,5,7,...:加数(double型)
*/
#include<stdio.h>
#include<stdarg.h>
double sum(int , ...);
main( )
{
printf("1+3+5+7+9=%lf\n",sum(5,1,3.0,5,7.0,9));
printf("1+2+...+10=%lf\n",sum(10,1,2.0,3,4.0,5,6.0,7,8.0,9,10.0));
}
double sum(int nterm, ...)
{
double sum=0;
int i=1;
va_list p;
va_start(p,nterm);
while(i<=nterm)
{
sum+=va_arg(p,int);i++;
if(i>nterm)break;
sum+=va_arg(p,double);i++;
}
va_end(p);
return sum;
}