- 5
- 0
- 约1.35千字
- 约 2页
- 2017-06-08 发布于重庆
- 举报
C实现多参数函数编程
C/C++实现多参数函数编程
作者:Dante来源: Vimer
在C/C++中,我们经常会需要实现类似printf这样的函数,即函数的参数个数是不定的,这个时候就需要用到我们这篇文章讲到的方法啦。首先,我们要知道这种函数,如何来定义。比如我想实现一个函数能够支持 fun ”%d”,1 ;那么这个函数的定义实际上如下:
void fun const char *fmt, … ;
其中…的意思是说参数无法一一列出,所以用…代替,至于怎么解,我们稍后再说。比较特殊的一点是,如果你希望将上面的函数定义成一个宏,那么这个宏可以这样写:
#define FUN fmt, args… fun fmt, ##args
又假设你希望宏能够自动加上换行符,那么可以这样写:
#define FUN fmt, args… fun fmt“\n”, ##args
OK,那么函数定义的问题我们就解决啦,但是怎么来解呢?C里面提供了va_start,va_arg,va_end这样几个函数,解释如下:va_start使argp指向第一个可选参数。va_arg返回参数列表中的当前参数并使argp指向参数列表中的下一个参数。va_end把argp指针清为NULL。函数体内可以多次遍历这些参数,但是都必须以va_start开始,并以va_end结尾。可能只是这样说并不是很清楚,我们举个例子。
1、
您可能关注的文档
- 第七章国际货物运输保险doc.doc
- Cs使用DirectX实现视频播放.doc
- CSV德国牧羊犬服从防卫比赛由两个部分组成.doc
- 第七章土壤污染取合理论.doc
- CT-20A4P2NO+2NC.doc
- CT220-系精密定位滑台.doc
- ctab-method.doc
- 第七章地基处理工程.doc
- 第七章土地资源的统筹配置.doc
- CTAB法提取DNA药品配制.doc
- 2026届山东省邹平市一中学高三4月模拟考试(一模)数学试题.doc
- 黄山学院《大学英语一》2024-----2025学年期末试卷(A卷).pdf
- 镁合金失效预防措施优化方案分析报告.docx
- 2026《碧生源公司供应链管理视角下的存货管理研究》9600字.doc
- 2026《碧生源公司员工培训满意度提升策略研究(附问卷)》12000字.doc
- 家居用品市场调研分析报告.docx
- 内审改进措施建议报告.docx
- 2026《碧生源可持续发展中存在的问题及提升对策》8800字.doc
- 2026届新疆维吾尔自治区阿克苏地区库车县乌尊镇中学高三考前热身历史试卷含解析.doc
- 食品安全液体净化规范分析.docx
最近下载
- CGA G-4.4 6TH ED (2020) Oxygen Pipeline and Piping Systems 氧气管道和管道系统.pdf
- 毕业设计(论文)-哈尔滨市体育公园规划设计.doc VIP
- 一种ALC板安装机具.pdf VIP
- 毕业设计(论文)-哈尔滨市体育公园规划设计.docx VIP
- (2025年高考真题解读) 2025年高考数学真题完全解读(北京卷).docx VIP
- 2026年最新职业素养考试试题及答案.doc VIP
- 义务教育优质均衡发展质量监测八年级综合试卷测试题及答案.docx VIP
- 新解读(2025)《HJ T342-2007水质 硫酸盐的测定 铬酸钡分光光度法(试行)》.pptx VIP
- 实例要素式强制执行申请书(申请执行用).pdf VIP
- 风力发电机叶片雷击损伤的损坏鉴定报告.doc VIP
原创力文档

文档评论(0)