仅仅是简单的实现,利用了可变参数列表。/* * 模拟实现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_list va_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*)); } else putchar(*val); ++val; } va_end(arg); } int main() { print("val:ccc s", 'a', 'b', 'c', "hello"); system("pause"); return 0; }
模拟实现 printf 函数
最新推荐文章于 2018-06-09 23:43:21 发布