diff --git a/data_types.c b/data_types.c new file mode 100644 --- /dev/null +++ b/data_types.c @@ -0,0 +1,61 @@ +/** + * $Id: data_types.c,v 1.1.1.1 2008-04-28 17:32:53 mbroeker Exp $ + * $Source: /development/c/demos/data_types.c,v $ + * + */ + +#include +#include +#include +#include +#include + +typedef unsigned char UCHAR; +typedef signed char SCHAR; + +typedef unsigned short USHORT; +typedef signed short SSHORT; + +typedef unsigned int UINT; +typedef signed int SINT; + +typedef unsigned long ULONG; +typedef signed long SLONG; + +#ifdef __USE_ISOC99 +typedef unsigned long long ULLONG; +typedef signed long long SLLONG; +#endif + +int main (int argc, char **argv) +{ + printf ("%20s %4s %20s %25s\n\n", "Type", "BITS", "MIN", "MAX"); + + printf ("%20s %4d %20d %25d\n", " signed char", 8 * sizeof (SCHAR), CHAR_MIN, CHAR_MAX); + printf ("%20s %4d %20d %25d\n", " signed short", 8 * sizeof (SSHORT), SHRT_MIN, SHRT_MAX); + printf ("%20s %4d %20d %25d\n", " signed int", 8 * sizeof (SINT), INT_MIN, INT_MAX); + printf ("%20s %4d %20ld %25ld\n", " signed long", 8 * sizeof (SLONG), LONG_MIN, LONG_MAX); + +#ifdef __USE_ISOC99 + printf ("%20s %4d %20lld %25lld\n\n", " signed llong", 8 * sizeof (SLLONG), (SLLONG) LLONG_MIN, LLONG_MAX); +#endif + + printf ("%20s %4d %20d %25u\n", " unsigned char", 8 * sizeof (UCHAR), 0, UCHAR_MAX); + printf ("%20s %4d %20d %25u\n", "unsigned short", 8 * sizeof (USHORT), 0, USHRT_MAX); + + printf ("%20s %4d %20d %25u\n", " unsigned int", 8 * sizeof (UINT), 0, UINT_MAX); + printf ("%20s %4d %20lu %25lu\n", " unsigned long", 8 * sizeof (ULONG), 0UL, ULONG_MAX); + +#ifdef __USE_ISOC99 + printf ("%20s %4d %20llu %25llu\n", "unsigned llong", 8 * sizeof (ULLONG), 0ULL, ULLONG_MAX); +#endif + +#ifdef __USE_ISOC99 + printf ("\n%20s %4d %20d %20d\n", "_Bool", 8 * sizeof (_Bool), 0, 1); +#endif + + printf ("\n%20s %4d \t\t %#1.2g \t\t %#1.2g\n", "float", 8 * sizeof (float), (double)FLT_MIN, (double)FLT_MAX); + printf ("%20s %4d \t\t %#1.2g \t\t %#1.2g\n", "double", 8 * sizeof (double), (double)DBL_MIN, (double)DBL_MAX); + + return 0; +}