可变参数列表解析

来源:互联网 发布:单反照片导入mac 编辑:程序博客网 时间:2024/06/05 18:32
#define _CRT_SECURE_NO_DEPRECATE 1#include<stdio.h>#include<stdarg.h>#include<windows.h>void print_digit(int num){if(num>9){int ret = num%10;print_digit(num/10);putchar(ret+'0');}elseputchar(num+'0');}void print(char *format, ...){char *ret = NULL;va_list arg;va_start(arg, format);while(*format){switch(*format){case 's':ret = va_arg(arg, char*);//每调用一次指针就挪一次,挪到下一个要取的参数地址while(*ret){putchar(*ret);ret++;}break; case 'c':putchar(va_arg(arg, char));break;case 'd':print_digit(va_arg(arg, int));break;default:putchar(*format);break;}format++;}va_end(arg);}int main(){print("s ccc d%.\n","hello",'b','i','t',100);system("pause");return 0;}

0 0
原创粉丝点击