The C Programming Language--可变参数的函数
函数 printf的正确声明形式为:
int printf(char *fmt, ...)
void va_start (va list ap, last-required)
type va_arg (va list ap, type)
void va_end (va list ap)
其中,省略号表示参数表中参数的数量和类型是可变的。
va_list 类型用于声明一个变量,该变量将依次引用各参数。
宏va_start将ap初始化为指向第一个可选参数列表的参数。在使用ap 之前,该宏必须被调用一次。参数表必须至少包括一个有名参数,
每次调用va_arg,该函数都将返回一个参数,并将ap 指向下一个参数。va_arg 使用
一个类型名来决定返回的对象类型、指针移动的步长。
最后,必须在函数返回之前调用va_end,以完成一些必要的清理工作。
关于:
int putchar (int c)
The putchar function is equivalent to putc with stdout as the value of the stream
argument.
所以其可以依次不断地从stdout中取出字符到字符串指针中。
int putc (int c, FILE *stream)
成功:返回c 失败:返回EOF
res:
转载于:https://www.cnblogs.com/qianzhilan/p/4273118.html
The C Programming Language--可变参数的函数相关推荐
- 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]
相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...
- Head First C学习日志 第七章 创建可变参数的函数
2019独角兽企业重金招聘Python工程师标准>>> ##让函数能伸缩 为了让函数可以接收可变个数/类型的参数,在此引入 可变参数的函数 宏与函数 宏用来在编译前重写代码,这里引入 ...
- python函数如何实现可变参数_【已解决】Python中实现可变参数的函数
[问题] Python中,希望实现一个可变参数的函数. [解决过程] 相关代码如下:(extractOK, extractedBlogUser, generatedBlogEntryUrl) = ca ...
- oracle 函数可变参数,6.3 带有可变参数的函数
6.3 带有可变参数的函数 在以前的实现中,不能指定函数预期的参数类型,但 ISO C 鼓励您使用原型执行该操作.为支持诸如 printf() 之类的函数,原型语法包括特殊的省略号(-) 终结符.由于 ...
- 可变参数的函数,myprintf,itoa
1.可变参数 头文件 stdarg:类型 va_list: 宏 va_start 到达可变参数的起始位置.初始化va_list类型的变量,使其指向可变参数列表的头(即第1个可变参数).例:va_sta ...
- python可变参数调用函数问题
一直使用python实现一些想法,最近在使用python的过程中出现这样一个需求,定义了一个函数,第一个是普通参数,第二个是默认参数,后面还有可变参数,在最初学习python的时候,都知道非关键字可变 ...
- 可变参数的函数,va_start(), va_arg(), va_end()
头文件 stdarg:类型va_list:宏va_start:宏va_arg:宏va_end 1 #include <stdio.h>2 #include <stdarg.h> ...
- python中可选参数和可变参数_Python函数中的可变长参数详解
一.Python函数中的参数 1.使用python的函数时,有参数类别,比如位置参数.关键字参数.可变长参数 2.位置参数.关键字参数很好理解,关键是可变长参数经常能见到,但是一直没有搞懂是什么意思 ...
- python def函数报错详解_【python】详解python函数定义 def()与参数args、可变参数*args、关键参数**args使用实例...
Python内置了很多函数,可以直接调用.Python内置的函数可以通过官方文档查看.也可以通过help()查看帮助信息.函数名是指向函数对象的引用,把函数名赋给变量,相当于给函数起了别名. 1. 定 ...
最新文章
- 封装事件绑定函数解决this在ie下的绑定问题
- beautifulsoup find函数返回值_再端一碗BeautifulSoup
- python验证码识别接口 服务器_python验证码识别模块
- lua中的require、dofile、loadfile
- JAVA中的日志框架-log4j的使用
- android竖直和横向,如何在android中为纵向和横向模式定义不同的控件
- Python中的列表和元组
- 个人对于MySQL的理解_面试官:谈谈你对Mysql的MVCC的理解?
- 20165301课下作业
- 华为主题包hwt下载_华为主题开发工具
- 计算机的屏幕录像,如何进行电脑屏幕录像?电脑录制屏幕视频的方法|电脑屏幕录像的图文步骤...
- 插上U盾计算机无法识别,U盾插入电脑后没反应,网上银行识别不了?
- 屏蔽google adsense和百度推广的广告
- 北风:在给我一面国旗换头像中,有人通过这个来获利吗?(亲身经历)
- laydate日期时间插件实现不用点击确定
- Linux jar包在screen开机自启
- 安装RedHat Linux 7.4
- 计算机网络之CPT实验
- android系统的市场占有率,安卓系统市场占有率竟然比苹果iOS高了这么多
- 米卢:梅西是世界最佳 弗格森没有犯错误
热门文章
- 全志A33-linux内核early_printk分析及使用
- 如何看透借款人的隐形负债?
- 郑洁又淘汰了一个美女瓦伊迪索娃
- 北京某打工子弟学校之一
- keil中断函数的写法_在 KeilC里,中断子程序与函数有何不同?( )_学小易找答案
- flip java_java的flip(). 这里用flip()有什么作用?这是反转缓冲区的方法,好像用不上。...
- mysql第四项_mysql数据库的基本介绍与操作(第四篇-mysql索引篇)
- centos路由查看命令_CentOS下使用Route命令添加路由
- Linux 安装卸载软件及管理软件仓库
- 在VNC远程桌面环境Xfce4中Tab键失效的解决方法