comparison test/tstdarg.c @ 285:912b54949344

register assop const ( int/long )
author kono
date Tue, 01 Jun 2004 12:42:36 +0900
parents
children 117baacd1ed0
comparison
equal deleted inserted replaced
284:ec1a68133f6a 285:912b54949344
1
2
3 #include <stdio.h>
4 #include <stdarg.h>
5
6 int
7 var_args(char *numtypes, ...)
8 {
9 int t;
10 int i;
11 float f;
12 double d;
13 long long l;
14 char *s;
15 va_list ap;
16
17 va_start(ap,numtypes);
18
19 while((t= *numtypes++)) {
20 if (t=='i') {
21 i = va_arg(ap,int);
22 printf("int arg: %d\n",i);
23 } else if (t=='f') {
24 #if 0
25 f = va_arg(ap,float);
26 #ele
27 f = va_arg(ap,double);
28 #endif
29 printf("float arg: %g\n",f);
30 } else if (t=='d') {
31 d = va_arg(ap,double);
32 printf("double arg: %g\n",d);
33 } else if (t=='l') {
34 l = va_arg(ap,long long);
35 printf("long long arg: %lld\n",l);
36 } else if (t=='s') {
37 s = va_arg(ap,char *);
38 printf("char *arg: %s\n",s);
39 } else {
40 s = va_arg(ap,char *);
41 printf("arg: error\n");
42 }
43 }
44 }
45
46
47 main()
48 {
49
50 var_args("iiiiii",1,2,3,4,5,6);
51 var_args("llllll",(long long)1,(long long)2,(long long)3,(long long)4,(long long)5,(long long)6);
52 var_args("ffffff",(float)1,(float)2,(float)3,(float)4,(float)5,(float)6);
53 var_args("dddddd",(double)1,(double)2,(double)3,(double)4,(double)5,(double)6);
54 var_args("ssssss","1","2","3","4","5","6");
55
56 }