C语言中编写可变参数函数
发布时间 - 2026-01-11 02:21:50 点击率:次通过stdarg.h头文件为函数提供了定义可变参数列表的能力。声明一个可变参数的函数类似:

void f1(int n,...);
其中n表示参数列表个数,而用省略号来表示未知参数列表。stdarg.h中提供了一个va_list类型,用于存放参数。一个大概的使用过程类似:
void f1(int n,...)
{
va_list ap;
va_start(ap,n); //初始化参数列表
double first=va_arg(ap,double); //取第一个参数
int second=va_arg(ap,int); //取第二个参数
...
va_end(ap); //清理工作
}
看一个求和的例子:
#include < stdio.h > #include < stdarg.h >
double sum( int ,
);
int main( void
)
{
double
s,t;
s
= sum( 3 , 1.1 , 2.2 , 13.3
);
t
= sum( 6 , 1.1 , 2.1 , 13.1 , 4.1 , 5.1 , 6.1
);
printf(
" return value for "
\
" sum(3,1.1,2.2,13.3): %g\n "
,s);
printf(
" return value for "
\
" sum(6,1.1,2.1,13.1,4.1,5.1,6.1): %g\n "
,t);
return 0
;
}
double sum( int lim,
)
{
va_list ap;
double total = 0
;
va_start(ap,lim);
int
i;
for (i = 0 ;i < lim;i ++
)
total
+= va_arg(ap, double
);
va_end(ap);
return
total;
}
C语言对可变参数的使用还是有点麻烦,不如ruby和java简便。比如ruby中定义并使用可变参数参数:
def sum(*e)
e.inject{|sum,i| sum+=i}
end
sum(1,2,3,4,5)=>15
# c
# 可变参数函数
# c语言可变参数函数
# C语言可变参数与函数参数的内存对齐详解
# C语言main()函数的参数问题详解
# C语言 函数缺省参数详情
# C语言可变参数函数详解
# C语言的可变参数函数实现详解
# C语言函数的参数使用指针
# C语言中函数参数的入栈顺序详解及实例
# C语言深入讲解函数参数的使用
# 第一个
# 第二个
# 而用
# 头文件
# va_start
# double
# ap
# va_arg
# include
# va_end
# lt
# cpp
# void
# stdarg
# code
# int
# class
# brush
# va_list
# pre
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网易LOFTER官网链接 老福特网页版登录地址
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何获取上海专业网站定制建站电话?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
phpredis提高消息队列的实时性方法(推荐)
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
如何在阿里云ECS服务器部署织梦CMS网站?
中国移动官方网站首页入口 中国移动官网网页登录
香港服务器建站指南:免备案优势与SEO优化技巧全解析
Laravel Docker环境搭建教程_Laravel Sail使用指南
Laravel怎么实现验证码(Captcha)功能
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
使用豆包 AI 辅助进行简单网页 HTML 结构设计
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
如何注册花生壳免费域名并搭建个人网站?
,交易猫的商品怎么发布到网站上去?
高端建站如何打造兼具美学与转化的品牌官网?
如何用PHP工具快速搭建高效网站?
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何在新浪SAE免费搭建个人博客?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
微信小程序 HTTPS报错整理常见问题及解决方案
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
Windows Hello人脸识别突然无法使用
大连 网站制作,大连天途有线官网?
昵图网官网入口 昵图网素材平台官方入口
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
如何用IIS7快速搭建并优化网站站点?
Laravel怎么在Blade中安全地输出原始HTML内容
EditPlus中的正则表达式实战(5)
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
如何用西部建站助手快速创建专业网站?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
如何在Windows 2008云服务器安全搭建网站?
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
Python文件操作最佳实践_稳定性说明【指导】
如何在 Pandas 中基于一列条件计算另一列的分组均值
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】

