In my previous blog post (exploring the function of variable parameters in C language), I introduced the principle of variable parameters in C language and a simple example. However, I found that the example is not very good, I found a better example today.
# include
/* minprintf: Minimal printf with variable argument list */void minprintf (char * FMT ,...) {va_list AP;/* points to each unnamed ARG in turn */char * P, * sval; int ival; double dval; va_start (AP, FMT ); /* Make AP point to 1st unnamed Arg */For (P = FMT; * P; P ++) {If (* P! = '%') {Putchar (* P); continue;} switch (* ++ p) {Case 'D': ival = va_arg (AP, INT ); printf ("% d", ival); break; Case 'F': dval = va_arg (AP, double); printf ("% F", dval); break; case's ': For (sval = va_arg (AP, char *); * sval; sval ++) putchar (* sval); break; default: putchar (* P ); break ;}} va_end (AP);/* clean up when done */}