-/* -------------------------------------------------------------------------- */
-/* <stdint.h> "exact width" literal suffixes */
-/* -------------------------------------------------------------------------- */
-
-#define _PDCLIB_INT8_LITERAL c
-#define _PDCLIB_INT16_LITERAL s
-#define _PDCLIB_INT32_LITERAL l
-#define _PDCLIB_INT64_LITERAL ll
-#define _PDCLIB_UINT8_LITERAL uc
-#define _PDCLIB_UINT16_LITERAL us
-#define _PDCLIB_UINT32_LITERAL ul
-#define _PDCLIB_UINT64_LITERAL ull
-
-/* -------------------------------------------------------------------------- */
-/* <stdint.h> intptr and intmax typedefs and limits */
-/* -------------------------------------------------------------------------- */
-
-typedef int _PDCLIB_intptr_t;
-#define _PDCLIB_INTPTR_MIN (-0x7fffff - 1)
-#define _PDCLIB_INTPTR_MAX 0x7fffff
-typedef unsigned int _PDCLIB_uintptr_t;
-#define _PDCLIB_UINTPTR_MAX 0xffffff
-
-typedef signed long long int _PDCLIB_intmax_t;
-#define _PDCLIB_INTMAX_MIN (-0x7fffffffffffffff - 1)
-#define _PDCLIB_INTMAX_MAX 0x7fffffffffffffff
-typedef unsigned long long int _PDCLIB_uintmax_t;
-#define _PDCLIB_UINTMAX_MAX 0xffffffffffffffff
+typedef _PDCLIB_intptr _PDCLIB_intptr_t;
+typedef unsigned _PDCLIB_intptr _PDCLIB_uintptr_t;
+#define _PDCLIB_INTPTR_MIN concat( concat( _PDCLIB_, _PDCLIB_INTPTR ), _MIN )
+#define _PDCLIB_INTPTR_MAX concat( concat( _PDCLIB_, _PDCLIB_INTPTR ), _MAX )
+#define _PDCLIB_UINTPTR_MAX concat( concat( _PDCLIB_U, _PDCLIB_INTPTR ), _MAX )
+
+typedef _PDCLIB_intmax _PDCLIB_intmax_t;
+typedef unsigned _PDCLIB_intmax _PDCLIB_uintmax_t;
+#define _PDCLIB_INTMAX_MIN concat( concat( _PDCLIB_, _PDCLIB_INTMAX ), _MIN )
+#define _PDCLIB_INTMAX_MAX concat( concat( _PDCLIB_, _PDCLIB_INTMAX ), _MAX )
+#define _PDCLIB_UINTMAX_MAX concat( concat( _PDCLIB_U, _PDCLIB_INTMAX ), _MAX )
+#define _PDCLIB_INTMAX_C( value ) concat( value, _PDCLIB_INTMAX_LITERAL )
+#define _PDCLIB_UINTMAX_C( value ) concat( value, concat( u, _PDCLIB_INTMAX_LITERAL ) )