X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=includes%2Flimits.h;h=7d14a9330007371d87b118ae0695f3a7abe0242e;hp=302eb3af2663f0d9a8bd7bf36c76d73abf689dce;hb=70f1c6f7c9d515ef426da68973511f46de57005a;hpb=54a2869bd13882c5e3b2417569709cd490cfcf3f diff --git a/includes/limits.h b/includes/limits.h index 302eb3a..7d14a93 100644 --- a/includes/limits.h +++ b/includes/limits.h @@ -10,35 +10,46 @@ #ifndef __LIMITS_H #define __LIMITS_H __LIMITS_H +// ISO/IEC 9899:1999, ยง5.2.4.2.1 +// The values given below shall be replaced by constant expressions suitable +// for use in #if preprocessing directives. Moreover, except for CHAR_BIT and +// MB_LEN_MAX, the following shall be replaced by expressions that have the +// same type as would an expression that is an object of the corresponding type +// converted according to the integer promotions. Their implementation-defined +// values shall be equal or greater in magnitude (absolute value) to those +// shown, with the same sign. + +// This file is part of the platform personality (see personality.txt). + // Limits of type 'char' -#define CHAR_BIT // TODO -#define CHAR_MAX // TODO -#define CHAR_MIN // TODO -#define SCHAR_MAX // TODO -#define SCHAR_MIN // TODO -#define UCHAR_MAX // TODO +#define CHAR_BIT // 8 +#define CHAR_MAX // SCHAR_MAX / UCHAR_MAX +#define CHAR_MIN // SCHAR_MIN / 0 +#define SCHAR_MAX // +127 +#define SCHAR_MIN // -127 +#define UCHAR_MAX // 255 (2^CHAR_BIT - 1) // Multibyte characters -#define MB_LEN_MAX // TODO +#define MB_LEN_MAX // 1 // Limits of type 'short int' -#define SHRT_MAX // TODO -#define SHRT_MIN // TODO -#define USHRT_MAX // TODO +#define SHRT_MAX // +32767 +#define SHRT_MIN // -32767 +#define USHRT_MAX // 65535 // Limits of type 'int' -#define INT_MAX // TODO -#define INT_MIN // TODO -#define UINT_MAX // TODO +#define INT_MAX // +32767 +#define INT_MIN // -32767 +#define UINT_MAX // 65535 // Limits of type 'long int' -#define LONG_MAX // TODO -#define LONG_MIN // TODO -#define ULONG_MAX // TODO +#define LONG_MAX // +2147483647 +#define LONG_MIN // -2147483647 +#define ULONG_MAX // 4294967295 // Limits of type 'long long int' -#define LLONG_MAX // TODO -#define LLONG_MIN // TODO -#define ULLONG_MAX // TODO +#define LLONG_MAX // +9223372036854775807 +#define LLONG_MIN // -9223372036854775807 +#define ULLONG_MAX // 18446744073709551615 #endif // __LIMITS_H