1 #pragma once
2 
3 #include <limits.h>
4 
5 #define CHARBITS (sizeof(char) * 8)
6 #define SHORTBITS (sizeof(short) * 8)
7 #define INTBITS (sizeof(int) * 8)
8 #define LONGBITS (sizeof(long) * 8)
9 #define PTRBITS (sizeof(char*) * 8)
10 #define DOUBLEBITS (sizeof(double) * 8)
11 #define FLOATBITS (sizeof(float) * 8)
12 
13 #define MINSHORT SHRT_MIN
14 #define MININT INT_MIN
15 #define MINLONG LONG_MIN
16 
17 #define MAXSHORT SHRT_MAX
18 #define MAXINT INT_MAX
19 #define MAXLONG LONG_MAX
20 
21 #define HIBITS MINSHORT
22 #define HIBITL MINLONG
23 
24 #include <float.h>
25 
26 #define MAXDOUBLE DBL_MAX
27 #undef MAXFLOAT
28 #define MAXFLOAT FLT_MAX
29 #define MINDOUBLE DBL_MIN
30 #define MINFLOAT FLT_MIN
31 #define DMINEXP DBL_MIN_EXP
32 #define FMINEXP FLT_MIN_EXP
33 #define DMAXEXP DBL_MAX_EXP
34 #define FMAXEXP FLT_MAX_EXP
35 
36 #define BITSPERBYTE CHAR_BIT
37