va_list、va_start、va_arg、va_end的使用

va_list、va_start、va_arg、va_end的使用实例:求任意个正整数的最小值

大家好,欢迎来到IT知识分享网。

实例:求任意个正整数的最小值

//任意个正数整数中找出最小的整数。
#include “stdafx.h”
#include “stdarg.h”
#include <iostream>
using namespace std;

int func(int i,…);
int _tmain(int argc, _TCHAR* argv[])
{

int min = func(1,2,3,4,5);
cout<<min;
system(“pause”);
return 0;
}

int func(int i,…)
{

int min;
va_list valist;
va_start(valist,i);
min = i;
int temp = min;
while (temp!=0)
{

if (temp<min)
{

min = temp;
}
temp = va_arg(valist,int);
}
va_end(valist);
return min;
}

注意:①包含头文件stdarg.h,②va_arg作用是返回下一个值,如果到末尾则返回0.

有两个问题:

1、可以不定参数函数的重载,如:

int func(int i,…)和

int func(int i,int j)

func(1)时调用第一个,func(1,2)时调用第二个,func(1,2,3)时调用第一个。

2、

当用func(1.1,2.2,3)时,会强制转化为整形来处理。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23612.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信