/* An instance of limits.h using minimal values. See C11 5.2.4.2.1. There is also a choice involving the char type: "If the value of an object of type char is treated as a signed integer when used in an expression, the value of CHAR_MIN shall be the same as that of SCHAR_MIN and the value of CHAR_MAX shall be the same as that of SCHAR_MAX. Otherwise, the value of CHAR_MIN shall be 0 and the value of CHAR_MAX shall be the same as that of UCHAR_MAX.20) The value UCHAR_MAX shall equal 2CHAR_BIT − 1." This instance chooses to make char a signed integer type. */ #ifndef _LIMITS_ #define _LIMITS_ // number of bits for smallest object that is not a bit-field (byte) #define CHAR_BIT 8 // minimum value for an object of type signed char #define SCHAR_MIN -127 //−(2^7−1) //maximum value for an object of type signed char #define SCHAR_MAX +127 //2^7−1 // maximum value for an object of type unsigned char #define UCHAR_MAX 255 //2^8−1 // minimum value for an object of type char #define CHAR_MIN -127 //maximum value for an object of type char #define CHAR_MAX +127 // maximum number of bytes in a multibyte character, for any supported locale #define MB_LEN_MAX 1 // minimum value for an object of type short int #define SHRT_MIN -32767 //−(2^15−1) // maximum value for an object of type short int #define SHRT_MAX +32767 //2^15−1 // maximum value for an object of type unsigned short int #define USHRT_MAX 65535 //2^16−1 // minimum value for an object of type int #define INT_MIN -32767 //−(2^15−1) // maximum value for an object of type int #define INT_MAX +32767 //2^15−1 // maximum value for an object of type unsigned int #define UINT_MAX 65535 //2^16−1 // minimum value for an object of type long int #define LONG_MIN -2147483647 //−(2^31−1) // maximum value for an object of type long int #define LONG_MAX +2147483647 //2^31−1 // maximum value for an object of type unsigned long int #define ULONG_MAX 4294967295 //2^32−1 // minimum value for an object of type long long int #define LLONG_MIN -9223372036854775807 //−(2^63−1) // maximum value for an object of type long long int #define LLONG_MAX +9223372036854775807 //2^63−1 // maximum value for an object of type unsigned long long int #define ULLONG_MAX 18446744073709551615 //2^64−1 #endif