上次在博客中提到过可变参数列表的使用,今天我再次使用可变参数列表来模拟实现库函数printf。
实现代码如下:
如有不理解的地方请查看可变参数列表那篇博客
http://blog.csdn.net/her__0_0/article/details/51173014
#include <stdio.h>
#include<stdarg.h>
void my_printf(const char *format, ...)
{
va_list arg;
va_start(arg, format);
while (*format)
{
switch (*format)
{
case'c':
{
char tmp = va_arg(arg, char);
putchar(tmp);
}break;
case's':
{
char * str = va_arg(arg, char *);
puts(str);
}break;
default:
putchar(*format);
break;
}
format++;
}
va_end(arg);
}
int main()
{
my_printf("sccc","hello ", 'a', 'b', 'c');
system("pause");
return 0;
}