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 】
相关推荐:
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
如何正确下载安装西数主机建站助手?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
JavaScript Ajax实现异步通信
如何在万网ECS上快速搭建专属网站?
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
Laravel怎么清理缓存_Laravel optimize clear命令详解
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
公司网站制作价格怎么算,公司办个官网需要多少钱?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
个人网站制作流程图片大全,个人网站如何注销?
如何在企业微信快速生成手机电脑官网?
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Laravel如何使用.env文件管理环境变量?(最佳实践)
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
Laravel如何创建自定义Artisan命令?(代码示例)
北京网站制作的公司有哪些,北京白云观官方网站?
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
详解jQuery中的事件
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
如何在宝塔面板中创建新站点?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
文字头像制作网站推荐软件,醒图能自动配文字吗?
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
教学论文网站制作软件有哪些,写论文用什么软件
?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
javascript中闭包概念与用法深入理解
Laravel API资源类怎么用_Laravel API Resource数据转换
如何用PHP快速搭建高效网站?分步指南
香港服务器网站推广:SEO优化与外贸独立站搭建策略
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
如何在阿里云部署织梦网站?
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
Android GridView 滑动条设置一直显示状态(推荐)

