关于可变参数列表

可变参数列表可以使函数在不同的时候接收不同数目的参数,最典型的例子就是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在使用完毕时调用。


 

你可能感兴趣的:(list)