关于可变参数列表
2010-12-08 17:37
267 查看
可变参数列表可以使函数在不同的时候接收不同数目的参数,最典型的例子就是printf().
下面我们来看一下怎样用最简单的办法来实现一个printf函数.
首先,头文件:
#include <stdarg.h>
在包含了stdarg.h这个头文件后,我们可以使用以下几个宏:
va_start, va_end
还有数据类型:
va_list
具体实现如下:
1 void my_printf(char *fmt, ...)
2 {
3 va_list list;
4 va_start(list, fmt);
5 vprintf(fmt, list);
6 va_end(list);
7 }
va_start用来初始化,使得list指向fmt后面的第一个参数。
va_end在使用完毕时调用。
下面我们来看一下怎样用最简单的办法来实现一个printf函数.
首先,头文件:
#include <stdarg.h>
在包含了stdarg.h这个头文件后,我们可以使用以下几个宏:
va_start, va_end
还有数据类型:
va_list
具体实现如下:
1 void my_printf(char *fmt, ...)
2 {
3 va_list list;
4 va_start(list, fmt);
5 vprintf(fmt, list);
6 va_end(list);
7 }
va_start用来初始化,使得list指向fmt后面的第一个参数。
va_end在使用完毕时调用。