函数 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--可变参数的函数相关推荐

  1. 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  2. Head First C学习日志 第七章 创建可变参数的函数

    2019独角兽企业重金招聘Python工程师标准>>> ##让函数能伸缩 为了让函数可以接收可变个数/类型的参数,在此引入 可变参数的函数 宏与函数 宏用来在编译前重写代码,这里引入 ...

  3. python函数如何实现可变参数_【已解决】Python中实现可变参数的函数

    [问题] Python中,希望实现一个可变参数的函数. [解决过程] 相关代码如下:(extractOK, extractedBlogUser, generatedBlogEntryUrl) = ca ...

  4. oracle 函数可变参数,6.3 带有可变参数的函数

    6.3 带有可变参数的函数 在以前的实现中,不能指定函数预期的参数类型,但 ISO C 鼓励您使用原型执行该操作.为支持诸如 printf() 之类的函数,原型语法包括特殊的省略号(-) 终结符.由于 ...

  5. 可变参数的函数,myprintf,itoa

    1.可变参数 头文件 stdarg:类型 va_list: 宏 va_start 到达可变参数的起始位置.初始化va_list类型的变量,使其指向可变参数列表的头(即第1个可变参数).例:va_sta ...

  6. python可变参数调用函数问题

    一直使用python实现一些想法,最近在使用python的过程中出现这样一个需求,定义了一个函数,第一个是普通参数,第二个是默认参数,后面还有可变参数,在最初学习python的时候,都知道非关键字可变 ...

  7. 可变参数的函数,va_start(), va_arg(), va_end()

    头文件 stdarg:类型va_list:宏va_start:宏va_arg:宏va_end 1 #include <stdio.h>2 #include <stdarg.h> ...

  8. python中可选参数和可变参数_Python函数中的可变长参数详解

    一.Python函数中的参数 1.使用python的函数时,有参数类别,比如位置参数.关键字参数.可变长参数 2.位置参数.关键字参数很好理解,关键是可变长参数经常能见到,但是一直没有搞懂是什么意思 ...

  9. python def函数报错详解_【python】详解python函数定义 def()与参数args、可变参数*args、关键参数**args使用实例...

    Python内置了很多函数,可以直接调用.Python内置的函数可以通过官方文档查看.也可以通过help()查看帮助信息.函数名是指向函数对象的引用,把函数名赋给变量,相当于给函数起了别名. 1. 定 ...

最新文章

  1. 封装事件绑定函数解决this在ie下的绑定问题
  2. beautifulsoup find函数返回值_再端一碗BeautifulSoup
  3. python验证码识别接口 服务器_python验证码识别模块
  4. lua中的require、dofile、loadfile
  5. JAVA中的日志框架-log4j的使用
  6. android竖直和横向,如何在android中为纵向和横向模式定义不同的控件
  7. Python中的列表和元组
  8. 个人对于MySQL的理解_面试官:谈谈你对Mysql的MVCC的理解?
  9. 20165301课下作业
  10. 华为主题包hwt下载_华为主题开发工具
  11. 计算机的屏幕录像,如何进行电脑屏幕录像?电脑录制屏幕视频的方法|电脑屏幕录像的图文步骤...
  12. 插上U盾计算机无法识别,U盾插入电脑后没反应,网上银行识别不了?
  13. 屏蔽google adsense和百度推广的广告
  14. 北风:在给我一面国旗换头像中,有人通过这个来获利吗?(亲身经历)
  15. laydate日期时间插件实现不用点击确定
  16. Linux jar包在screen开机自启
  17. 安装RedHat Linux 7.4
  18. 计算机网络之CPT实验
  19. android系统的市场占有率,安卓系统市场占有率竟然比苹果iOS高了这么多
  20. 米卢:梅西是世界最佳 弗格森没有犯错误

热门文章

  1. 全志A33-linux内核early_printk分析及使用
  2. 如何看透借款人的隐形负债?
  3. 郑洁又淘汰了一个美女瓦伊迪索娃
  4. 北京某打工子弟学校之一
  5. keil中断函数的写法_在 KeilC里,中断子程序与函数有何不同?( )_学小易找答案
  6. flip java_java的flip(). 这里用flip()有什么作用?这是反转缓冲区的方法,好像用不上。...
  7. mysql第四项_mysql数据库的基本介绍与操作(第四篇-mysql索引篇)
  8. centos路由查看命令_CentOS下使用Route命令添加路由
  9. Linux 安装卸载软件及管理软件仓库
  10. 在VNC远程桌面环境Xfce4中Tab键失效的解决方法