模拟实现 printf 函数

来源:互联网 发布:java吧 编辑:程序博客网 时间:2024/05/16 07:29
/** 模拟实现printf()函数* print("val:ccc s", 'a', 'b', 'c', "hello");//c模拟%c,s模拟%s* val:abc hello**/#include <stdio.h>#include <stdlib.h>#include <stdarg.h>void print(char * val, ...)//可变参数列表{char *c = NULL;va_list arg;//typedef char * va_listva_start(arg, val);//获取参数地址while (*val != '\0') {//val指向"val:ccc s"if (*val == 'c') {putchar(va_arg(arg, char));}else if (*val == 's') {puts(va_arg(arg, char*));}elseputchar(*val);++val;}va_end(arg);}int main(){print("val:ccc s", 'a', 'b', 'c', "hello");system("pause");return 0;}
仅仅是简单的实现,利用了可变参数列表。

2 0