Mercurial > hg > CbC > old > device
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 } |