]> pd.if.org Git - pdclib/blobdiff - includes/limits.h
Started introducting "personality".
[pdclib] / includes / limits.h
index 302eb3af2663f0d9a8bd7bf36c76d73abf689dce..7d14a9330007371d87b118ae0695f3a7abe0242e 100644 (file)
 #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