`
rokuan
  • 浏览: 19714 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

C语言可变参数函数示例

 
阅读更多
#include <stdio.h>
#include <stdarg.h>

int demo(char *msg, ...)
{
	va_list argp;
	int num = 0;
	char *para;	
	va_start(argp, msg);
	
	while(1) {
		para = va_arg(argp, char *);
		if (strcmp(para, "\0") == 0)
			break;
		printf("parameter #%d is: %s\n", num, para);
		num++;
	}
	va_end(argp);
	return 0;
}

int main()
{
	demo("DEMO","this","is","a","demo","\0");
	return 0;
}

说明:va_start(va_list类型参数, 最后一个确定参数)
va_arg(va_list类型参数, 类型参数)
va_end(va_list类型参数)

程序运行结果:


  • 大小: 2.9 KB
分享到:
评论

相关推荐

    C语言可变参数函数详解示例

    一般我们编程的时候,函数中形式参数的数目通常是确定的,在...但在某些情况下我们希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。典型的可变参数函数的例子有printf()、scanf()等,下面我就开始讲解

    c语言实现的一个简单的日志函数

    c语言实现的一个简单的日志函数, 主要是实现可变参数函数的使用技巧!

    C语言函数库详解.doc

    C语言函数库详解.doc C语言函数库,包含 C 标准库、IO 函数、字符处理函数、...9. &lt;stdarg.h&gt;:可变参数表 10. &lt;stddef.h&gt;:公共定义 11. &lt;stdio.h&gt;:输入输出 12. &lt;stdlib.h&gt;:实用函数 13. &lt;time.h&gt;:日期与时间函数

    明解C语言:中级篇【试读】

    每章的程序都很简单有趣,而且包含着很多实用性的技巧,例如随机数的生成、数组的应用方法、字符串和指针、命令行参数、文件处理、接收可变参数的函数的生成方法、存储空间的动态分配与释放,等等。此外,还会讲解...

    C语言入门经典(第4版)--源代码及课后练习答案

    9.4 变元个数可变的函数 341 9.4.1 复制va_list 344 9.4.2 长度可变的变元列表的基本规则 344 9.5 main()函数 345 9.6 结束程序 346 9.7 函数库:头文件 347 9.8 提高性能 348 9.8.1 内联声明函数 348 ...

    《你必须知道的495个C语言问题》

    可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此往复,以至无穷。 12  数组大小 13 1.23 能否声明和传入数组大小一致的局部数组,或者由...

    你必须知道的495个C语言问题.pdf

    可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数,如此往复,以至无穷。 数组大小 1.23 能否声明和传入数组大小一致的局部数组,或者由其他参数指定大小...

    你必须知道的495个C语言问题

    C预处理器第11章 ANSI/ISO标准C 第12章 标准输入输出库第13章 库函数第14章 浮点运算第15章 可变参数列表第16章 奇怪的问题第17章 风格第18章 工具和资源第19章 系统依赖第20章 杂项术语表 参考文献 

    Visual Basic快速入门.md

    5. 讲解了函数的定义和使用,包括无返回值函数、有返回值函数以及可变参数列表函数。 6. 介绍了面向对象概念,如类、构造函数、析构函数、属性、继承、抽象类、接口等。 7. 讲解了静态成员、模块的概念。 8. 最后...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    5.5.1 接受数量可变实参的函数 241 5.5.2 main( )的实参 242 5.6 小结 243 5.7 练习 243 5.8 本章主要内容 244 第6章 程序结构(2) 245 6.1 函数指针 245 6.1.1 声明函数指针 246 6.1.2 函数指针作为实参 249...

    Numpy用户指南.pdf

    3.4.10 在程序中处理可变数量的索引 72 3.5 广播 73 3.6 字节交换 78 3.6.1字节排序和ndarrays简介 78 3.6.2 更改字节顺序 80 3.7 结构化数组 82 3.7.1 介绍 82 3.7.2 结构化数据类型 83 3.7.3 索引和分配给结构化...

    Objective-C2.0程序设计

    15.2.2 可变对象与不可变对象 15.2.3 可变字符串 15.2.4 所有对象到哪里去了 15.3 数组对象 15.4 同步AddressCard方法 15.4.1 快速枚举 15.4.2 数组排序 15.5 词典对象 15.6 集合对象 15.7 练习 第16章 使用文件 ...

    自己写的dll的简介

    2. 此外GetProcAddress是直接在.dll文件中寻找同名函数,如果DLL中的Test函数是个C++函数,那么由于在.dll文件中的实际文件名会被修饰(具体被修饰的规则可参考函数调用约定详解或者使用VC自带的Depends.exe查看),...

    Python 元组拆包示例(Tuple Unpacking)

    pythn里的元组就相当于C语言里的数组,是不可变的,但是也可以容纳不同类型的元素,也是容器的一种。 &gt;&gt;&gt; t = (1,2,'a','b','c') &gt;&gt;&gt; t (1, 2, 'a', 'b', 'c') &gt;&gt;&gt; type(t) 元组主要有两个方法: index():获取...

    类似matlab矩阵功能的c代码-CSI_reader:CSI_reader

    前两字节是field_len,之后一字节是code,再之后便是可变长度的field。field_len等于code+field的字长。 当code为187时,表示field中是信道信息;不是187时,表示field中是其他信息。 我们关心的是信道信息,其他...

Global site tag (gtag.js) - Google Analytics