limits.h 971 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (c) mlibc & plct lab
  3. *
  4. * SPDX-License-Identifier: MIT
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2023/06/16 bernard the first verison
  9. */
  10. #ifndef MLIBC_LIMITES_H__
  11. #define MLIBC_LIMITES_H__
  12. #include <stdint.h>
  13. #include <inttypes.h>
  14. #define CHAR_BIT 8
  15. #define SCHAR_MIN (-128)
  16. #define SCHAR_MAX 127
  17. #define UCHAR_MAX 255
  18. #define SHRT_MIN (-1 - 0x7fff)
  19. #define SHRT_MAX 0x7fff
  20. #define USHRT_MAX 0xffff
  21. #define INT_MIN (-1 - 0x7fffffff)
  22. #define INT_MAX 0x7fffffff
  23. #define UINT_MAX 0xffffffffU
  24. #if (defined(__GNUC__) && (__SIZEOF_POINTER__ == 8))
  25. #define __LONG_MAX INT64_MAX
  26. #else
  27. #define __LONG_MAX INT32_MAX
  28. #endif /* defined(__GUNC__) */
  29. #define LONG_MAX __LONG_MAX
  30. #define LONG_MIN (-LONG_MAX - 1)
  31. #define ULONG_MAX (2UL * LONG_MAX + 1)
  32. #define LLONG_MIN (-LLONG_MAX - 1)
  33. #define LLONG_MAX 0x7fffffffffffffffLL
  34. #define ULLONG_MAX (2ULL * LLONG_MAX + 1)
  35. #endif /*MLIBC_LIMITES_H__*/