- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
不定参数函数
va_list 深究
2007-11-30 20:39
V A 函数(v a r i a b l e a r g u m e n t f u n c t i o n ),参数个数可变函数,又称可变参数函数。C / C + +
员的 v a 函数很少。* p r i n t f ( ) / * s c a n f ( ) 系列函数,用于输入输出时格式化字符串;e x e c * ( )
外部文件( m a i n ( i n t a r g c , c h a r * a r g v [ ] 算不算呢,与其说 m a i n ( )
后的具备特殊功能和意义的函数,至少在原理这一级上有很多相似之处)
运用时机、编译实现又是如何。作者借本文谈谈自己关于 v a 函数的一些浅见。
一、 从 p r i n t f ( ) 开始
从大家都很熟悉的格式化字符串函数开始介绍可变参数函数。
原型:i n t p r i n t f ( c o n s t c h a r * f o r m a t , . . . ) ;
参数 f o r m a t 表示如何来格式字符串的指令, …
表示可选参数,调用时传递给 . . . 的参数可有可无,根据实际情况而定。
系统提供了 v p r i n t f 系列格式化字符串的函数,用于编程人员封装自己的 I / O 函数。
i n t v p r i n t f / v s c a n f ( c o n s t c h a r * f o r m a t , v a _ l i s t a p ) ; / / 从标准输入/ 输出格式化字符串
i n t v f p r i n t f / v f s a c a n f ( F I L E * s t r e a m , c o n s t c h a r * f o r m a t , v a _ l i s t a p ) ; / / 从文件流
i n t v s p r i n t f / v s s c a n f ( c h a r * s , c o n s t c h a r * f o r m a t , v a _ l i s t a p ) ; / / 从字符串
/ / 例 1 :格式化到一个文件流,可用于日志文件
F I L E * l o g f i l e ;
i n t W r i t e L o g ( c o n s t c h a r * f o r m a t , . . . )
{
v a _ l i s t a r g _ p t r ;
v a _ s t a r t ( a r g _ p t r , f o r m a t ) ;
i n t n W r i t t e n B y t e s = v f p r i n t f ( l o g f i l e , f o r m a t , a r g _ p t r ) ;
v a _ e n d ( a r g _ p t r ) ;
r e t u r n n W r i t t e n B y t e s ;
}
…
/ / 调用时,与使用 p r i n t f ( ) 没有区别。
W r i t e L o g ( % 0 4 d - % 0 2 d - % 0 2 d % 0 2 d : % 0 2 d : % 0 2 d % s / % 0 4 d l o g g e d o u t . ,
n Y e a r , n M o n t h , n D a y , n H o u r , n M i n u t e , s z U s e r N a m e , n U s e r I D ) ;
同理,也可以从文件中执行格式化输入;或者对标准输入输出,字符串执行格式化。
在上面的例 1 中,W r i t e L o g ( ) 函数可以接受参数个数可变的输入,本质上,它的实现需要
现属于自己的可变参数函数,包括控制每一个传入的可选参数。
二、 v a 函数的定义和 v
您可能关注的文档
最近下载
- GB+39496-2020尾矿库安全规程.docx VIP
- 衡水体英文字母字帖.pdf VIP
- 聚酰亚胺 化学、结构与性能的关系及材料.pdf VIP
- 2025-2026学年小学信息技术(信息科技)五年级上册重大版(2023)教学设计合集.docx
- 迎春杯历年试题全集(上).pdf VIP
- 建筑结构检测鉴定与加固课程-第7章 钢结构加固.ppt VIP
- PW5300_2.0数据手册下载.pdf VIP
- 建筑结构检测鉴定与加固课程-第8章 建筑结构的改造.ppt VIP
- 重大版小学信息技术教案四年级上册教案.doc VIP
- 多因子选股系列研究之十八:成交量激增与骤降时刻的对称性与“一视同仁”因子构建.pdf VIP
文档评论(0)