diff options
| -rw-r--r-- | libsimple/definitions.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libsimple/definitions.h b/libsimple/definitions.h index e5dca61..1e39867 100644 --- a/libsimple/definitions.h +++ b/libsimple/definitions.h @@ -351,7 +351,7 @@ * @since 1.0 */ #ifndef INTSTRLEN -# define INTSTRLEN(TYPE) ((sizeof(TYPE) == 1 ? 3 : 5 * (sizeof(TYPE) / 2)) + ((TYPE)-1 < 0)) +# define INTSTRLEN(TYPE) ((CHAR_BIT * sizeof(TYPE) <= 8 ? 3 : 5 * (CHAR_BIT * sizeof(TYPE) / 16)) + ((TYPE)-1 < 0)) #endif @@ -364,7 +364,7 @@ * @since 1.0 */ #ifndef TYPE_MAX -# define TYPE_MAX(TYPE) ((TYPE)(((1ULL << (8 * sizeof(TYPE) - 1)) - 1) << ((TYPE)-1 > 0) | 1)) +# define TYPE_MAX(TYPE) ((TYPE)(((1ULL << (CHAR_BIT * sizeof(TYPE) - 1)) - 1) << ((TYPE)-1 > 0) | 1)) #endif @@ -377,7 +377,7 @@ * @since 1.0 */ #ifndef TYPE_MIN -# define TYPE_MIN(TYPE) ((TYPE)((TYPE)-1 > 0 ? 0 : (TYPE)~0 < (TYPE)-1 ? (TYPE)~0 : (TYPE)(1ULL << (8 * sizeof(TYPE) - 1)))) +# define TYPE_MIN(TYPE) ((TYPE)((TYPE)-1 > 0 ? 0 : (TYPE)~0 < (TYPE)-1 ? (TYPE)~0 : (TYPE)(1ULL << (CHAR_BIT * sizeof(TYPE) - 1)))) #endif |
