可变长参数示例
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);
}
#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);
}
相关文章推荐
- Maven异常:Dynamic Web Module 3.0 requires Java 1.6 or newer.
- Android studio优点及快捷键
- 我的第一个JApplet-绘制笑脸
- connot be resolved to a variable
- 最简洁的nginx反向代理例子配置
- URAL1534 进球
- C++自制Redis 数据库(九) 详细数据库存储结构,线程相关已解决
- POJ 3279 Fliptile【枚举】
- POJ 3279 Fliptile【枚举】
- Word Search II 题解
- 对农行金e顺k令的一些猜测
- 黄聪:wordpress如何扩展TinyMCE编辑器,添加自定义按钮及功能
- Objective-C简介
- linux 信号 回收子进程
- 安卓开发——错误提示:Your content must have a ListView whose id attribute is 'android.R.id.list'
- 简单验证码的有关知识点
- windows apache服务器配置多域名
- 6.1、贝叶斯分类器
- hdu 5285 wyh2000 and pupil【二分图+染色法】
- poj 1458 最长公共子序列