C语言中时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为:
int printf( const char* format, ...);
int printf( const char* format, ...);
它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符),即···可以写任意参数,该函数有一个参数,其后占位符…,表示后面参数的个数不定.,但第一个参数是必须的,同时在这里要用到函数库里的三个函数:
va_start
,va_arg,
va_end
它们是在stdarg.h中被定义成宏的。
在这里实现一个my—pintf()函数,仅实现了字符和字符串的输出。
代码如下:
#include<stdio.h>
#include <stdarg.h>
void my_printf(char *fmt,