18 typedef unsigned long ULONG; |
18 typedef unsigned long ULONG; |
19 typedef signed long SLONG; |
19 typedef signed long SLONG; |
20 |
20 |
21 #ifdef __USE_ISOC99 |
21 #ifdef __USE_ISOC99 |
22 typedef unsigned long long ULLONG; |
22 typedef unsigned long long ULLONG; |
23 |
|
24 typedef signed long long SLLONG; |
23 typedef signed long long SLLONG; |
25 #endif |
24 #endif |
26 |
25 |
27 int main (int argc, char **argv) |
26 int main (int argc, char **argv) |
28 { |
27 { |
29 printf ("%20s %4s %20s %25s\n\n", "Type", "BITS", "MIN", "MAX"); |
28 printf ("%20s %4s %20s %25s\n\n", "Type", "BITS", "MIN", "MAX"); |
30 |
29 |
31 printf ("%20s %4d %20d %25d\n", " signed char", 8 * sizeof (SCHAR), CHAR_MIN, CHAR_MAX); |
30 printf ("%20s %4lu %20d %25d\n", " signed char", 8 * sizeof (SCHAR), CHAR_MIN, CHAR_MAX); |
32 printf ("%20s %4d %20d %25d\n", " signed short", 8 * sizeof (SSHORT), SHRT_MIN, SHRT_MAX); |
31 printf ("%20s %4lu %20d %25d\n", " signed short", 8 * sizeof (SSHORT), SHRT_MIN, SHRT_MAX); |
33 printf ("%20s %4d %20d %25d\n", " signed int", 8 * sizeof (SINT), INT_MIN, INT_MAX); |
32 printf ("%20s %4lu %20d %25d\n", " signed int", 8 * sizeof (SINT), INT_MIN, INT_MAX); |
34 printf ("%20s %4d %20ld %25ld\n", " signed long", 8 * sizeof (SLONG), LONG_MIN, LONG_MAX); |
33 printf ("%20s %4lu %20ld %25ld\n", " signed long", 8 * sizeof (SLONG), LONG_MIN, LONG_MAX); |
35 |
34 |
36 #ifdef __USE_ISOC99 |
35 #ifdef __USE_ISOC99 |
37 printf ("%20s %4d %20lld %25lld\n\n", " signed llong", 8 * sizeof (SLLONG), (SLLONG) LLONG_MIN, LLONG_MAX); |
36 printf ("%20s %4lu %20lld %25lld\n\n", " signed llong", 8 * sizeof (SLLONG), (SLLONG) LLONG_MIN, LLONG_MAX); |
38 #endif |
37 #endif |
39 |
38 |
40 printf ("%20s %4d %20d %25u\n", " unsigned char", 8 * sizeof (UCHAR), 0, UCHAR_MAX); |
39 printf ("%20s %4lu %20d %25u\n", " unsigned char", 8 * sizeof (UCHAR), 0, UCHAR_MAX); |
41 printf ("%20s %4d %20d %25u\n", "unsigned short", 8 * sizeof (USHORT), 0, USHRT_MAX); |
40 printf ("%20s %4lu %20d %25u\n", "unsigned short", 8 * sizeof (USHORT), 0, USHRT_MAX); |
42 |
41 |
43 printf ("%20s %4d %20d %25u\n", " unsigned int", 8 * sizeof (UINT), 0, UINT_MAX); |
42 printf ("%20s %4lu %20d %25u\n", " unsigned int", 8 * sizeof (UINT), 0, UINT_MAX); |
44 printf ("%20s %4d %20lu %25lu\n", " unsigned long", 8 * sizeof (ULONG), 0UL, ULONG_MAX); |
43 printf ("%20s %4lu %20lu %25lu\n", " unsigned long", 8 * sizeof (ULONG), 0UL, ULONG_MAX); |
45 |
44 |
46 #ifdef __USE_ISOC99 |
45 #ifdef __USE_ISOC99 |
47 printf ("%20s %4d %20llu %25llu\n", "unsigned llong", 8 * sizeof (ULLONG), 0ULL, ULLONG_MAX); |
46 printf ("%20s %4lu %20llu %25llu\n", "unsigned llong", 8 * sizeof (ULLONG), 0ULL, ULLONG_MAX); |
48 #endif |
47 #endif |
49 |
48 |
50 #ifdef __USE_ISOC99 |
49 #ifdef __USE_ISOC99 |
51 printf ("\n%20s %4d %20d %20d\n", "_Bool", 8 * sizeof (_Bool), 0, 1); |
50 printf ("\n%20s %4lu %20d %20d\n", "_Bool", 8 * sizeof (_Bool), 0, 1); |
52 #endif |
51 #endif |
53 |
52 |
54 printf ("\n%20s %4d \t\t %#1.2g \t\t %#1.2g\n", "float", 8 * sizeof (float), (double)FLT_MIN, (double)FLT_MAX); |
53 printf ("\n%20s %4lu \t\t %#1.2g \t\t %#1.2g\n", "float", 8 * sizeof (float), (double)FLT_MIN, (double)FLT_MAX); |
55 printf ("%20s %4d \t\t %#1.2g \t\t %#1.2g\n", "double", 8 * sizeof (double), (double)DBL_MIN, (double)DBL_MAX); |
54 printf ("%20s %4lu \t\t %#1.2g \t\t %#1.2g\n", "double", 8 * sizeof (double), (double)DBL_MIN, (double)DBL_MAX); |
56 |
55 |
57 return EXIT_SUCCESS; |
56 return EXIT_SUCCESS; |
58 } |
57 } |