1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/* generic.h */
typedef unsigned char _uchar;
typedef unsigned short _ushort;
typedef unsigned int _uint;
#define DOUBLE_EXPAND(ch, type, FUNCTION) \
\
FUNCTION(ch,type,c,char) \
FUNCTION(ch,type,s,short) \
FUNCTION(ch,type,i,int) \
FUNCTION(ch,type,l,longlong) \
FUNCTION(ch,type,r,float) \
FUNCTION(ch,type,d,double) \
FUNCTION(ch,type,t,_uchar) \
FUNCTION(ch,type,u,_ushort) \
FUNCTION(ch,type,v,_uint) \
#define DOUBLE_GENERIC(FUNCTION) \
\
DOUBLE_EXPAND(c,char,FUNCTION) \
DOUBLE_EXPAND(s,short,FUNCTION) \
DOUBLE_EXPAND(i,int,FUNCTION) \
DOUBLE_EXPAND(l,longlong,FUNCTION) \
DOUBLE_EXPAND(r,float,FUNCTION) \
DOUBLE_EXPAND(d,double,FUNCTION) \
DOUBLE_EXPAND(t,_uchar,FUNCTION) \
DOUBLE_EXPAND(u,_ushort,FUNCTION) \
DOUBLE_EXPAND(v,_uint,FUNCTION) \
|