您的位置:首页 > 其它

可变长参数示例

2016-02-10 15:46 274 查看
#include<stdio.h>

#include<stdarg.h>

int max(int cnt,...)

{

        va_list v;//v保存可变长参数表 va_list是一个类型

        va_start(v,cnt);//用v保存参数cnt之后的那些参数

        int i;

        int max = va_arg(v,int);//从参数表中取出一个int类型的参数

        for(i = 1;i<cnt;i++)

        {

                int data = va_arg(v,int);

                if(data>max)

                        max = data;

        }

        va_end(v);//释放可变量参数表v

        return max;

}

void Printchar(int cnt,...)

{

        va_list v;

        va_start(v,cnt);

        int i;

        for(i = 0;i<cnt;i++)

        {

                                       printf("%c",va_arg(v,int));//char ,short会提升成int float=>double

        }

        printf("\n");

        va_end(v);

}

void Printstring(int cnt,...)

{

        va_list v;

        va_start(v,cnt);

        int i;

        for(i = 0;i<cnt;i++)

        {

                printf("%s\n",va_arg(v,char*));

        }

        va_end(v);

}

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: