网站建设资讯

NEWS

网站建设资讯

可变参数函数c语言 可变参数函数c语言表达式

c语言 怎么写 可变 参数函数

#include stdarg.h          //可变参数函数必要的头文件

10年积累的成都做网站、成都网站建设、成都外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有和静免费网站建设让你可以放心的选择与我们合作。

#include stdio.h

long int sum(unsigned int argc,...)    //可变参数函数必须包含至少一个确定的参数

{

long int srt=0;

int va;

unsigned int i;

va_list vl;                        //用于指向可变参数列表

va_start(vl,argc);                 //初始化,va_start()调用的第一个参数是所编写的可变参数函数的最后一个确定的参数

for (i = 0; iargc; i++) {

srt+=(int)va_arg(vl,int);      //从参数列表按提取一个int类型的值参与相加运算

}

va_end(vl);                        //清理

return srt;

}

int main(int argc, char* argv[])

{

printf("%ld\n",sum(3,1,2,3));

return 0;

}

如何在C语言中定义参数数目可变的函数

定义如下:

函数返回值 函数名(形参1, 形参2, ...)

举例说明:

int  func(int a, int b, ...)

{

//函数体

......

}

printf()函数就是一个参数可变的函数,其函数原型为:

int printf (const char *__format, ...);

C语言中如何实现可变参函数

C语言中可变参函数实现,主要通过VA_LIST宏及相关操作的几个宏。

一、涉及宏及说明:

所有相关宏均定义在stdarg.h中。

1、va_list: 可变参数列表指针。

2、va_start:获取可变参数列表的第一个参数的地址。

3、va_arg:获取可变参数的当前参数,返回指定类型并将指针指向下一参数。

4、va_end:清空va_list可变参数列表。

可变参函数的实现,就是这四个宏的使用。

二、代码举例:

在实际应用中,经常有获取若干个数最大值的情况,当数量比较大的时候,一般通过数组实现,但个数不多时,一般写一个max函数。 常规写法都是用到几个数的max,就写几个参数, 对此可以实现一个可变参数函数,第一个参数指定共计有多少数据,后续各个参数为要比较的值。

#include stdio.h

#include stdarg.h

int max(int n, ...)//可变参数函数。

{

int r,i;

va_list ap;//定义可变参数。

if(n == 0) return -1;//异常参数。

va_start(ap, n);//得到起始点。

for(i = 0; i  n; i ++)

{

int v=va_arg(ap,int) ;//获取下一个参数值。

if(i == 0) r=v;

else if(rv) r=v;

}

va_end(ap);//结束可变参数。

return r;//返回结果。

}

可以用如下主函数测试:

int main()

{

printf("%d\n",max(1, 1));

printf("%d\n",max(2, 2,1));

printf("%d\n",max(3, 5,9, 4));

printf("%d\n",max(4, 8 , 3,1,9));

return 0;

}

分别测试了1,2,3,4个数值,求取最大值的情况。 

测试结果:

1

2

9

9


文章名称:可变参数函数c语言 可变参数函数c语言表达式
分享链接:http://cdweb.net/article/dddcoso.html