1 #include <stdio.h>
2 #include <stdarg.h>
3 
4 
5 void
test1(int d0,int d1,int d2,int d3,int d4,int d5,int d6,int d7,int d8,int d9,int d10,int d11,char * fmt,...)6 test1(int d0, int d1, int d2, int d3, int d4, int d5,
7       int d6, int d7, int d8, int d9, int d10, int d11,
8       char *fmt, ...) {
9 	char	*p;
10 	va_list	va;
11 
12 	va_start(va, fmt);
13 
14 	for (p = fmt; *p != 0; ++p) {
15 		switch (*p) {
16 		case 'i': {
17 			int	i = va_arg(va, int);
18 			printf("%d\n", i);
19 			break;
20 			}
21 		case 'l': {
22 			long long	l = va_arg(va, long long);
23 			printf("%lld\n", l);
24 			break;
25 			}
26 		case 'd': {
27 			double	d = va_arg(va, double);
28 			printf("%f\n", d);
29 			break;
30 			}
31 		case 'L': {
32 			long double	ld = va_arg(va, long double);
33 			printf("%Lf\n", ld);
34 			break;
35 			}
36 		default:
37 			;
38 		}
39 	}
40 	va_end(va);
41 }
42 
43 int
main()44 main() {
45 #if 0
46 	test1("i i d l L i l d L i L i i L",
47 		1, 2, 3.0, 4LL, 5.0L,
48 		6, 7LL, 8.0f, 9.0L, 10,
49 		11.0L, 12, 13, 14.3L);
50 #endif
51 	test1(0,0,0,0,0,0,0,0,0,0,0,0,"i i i i", 1, 2, 3, 4);
52 }
53 
54