stdint.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #ifndef __STDINT_H__
  2. #define __STDINT_H__
  3. #include <rtthread.h>
  4. typedef rt_int8_t int8_t;
  5. typedef rt_uint8_t uint8_t;
  6. typedef rt_int16_t int16_t;
  7. typedef rt_uint16_t uint16_t;
  8. typedef rt_int32_t int32_t;
  9. typedef rt_uint32_t uint32_t;
  10. typedef long long int64_t;
  11. typedef unsigned long long uint64_t;
  12. typedef signed long intptr_t;
  13. typedef unsigned long uintptr_t;
  14. /*
  15. * 7.18.2 Limits of specified-width integer types.
  16. *
  17. * The following object-like macros specify the minimum and maximum limits
  18. * of integer types corresponding to the typedef names defined above.
  19. */
  20. /* 7.18.2.1 Limits of exact-width integer types */
  21. #define INT8_MIN (-0x7f - 1)
  22. #define INT16_MIN (-0x7fff - 1)
  23. #define INT32_MIN (-0x7fffffff - 1)
  24. #define INT8_MAX 0x7f
  25. #define INT16_MAX 0x7fff
  26. #define INT32_MAX 0x7fffffff
  27. #define UINT8_MAX 0xff
  28. #define UINT16_MAX 0xffff
  29. #define UINT32_MAX 0xffffffffU
  30. #ifndef __INT_MAX__
  31. #define __INT_MAX__ 2147483647
  32. #endif
  33. #define INT_MIN (-1 - INT_MAX)
  34. #define INT_MAX (__INT_MAX__)
  35. #define UINT_MAX (INT_MAX * 2U + 1U)
  36. #define LONG_MAX ((long)(~0UL>>1))
  37. #define LONG_MIN (-LONG_MAX - 1)
  38. #define ULONG_MAX (~0UL)
  39. #define SIZE_MAX ULONG_MAX
  40. #endif