stdint.h 1.2 KB

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