stdint.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. typedef unsigned char uint8_t;
  3. typedef unsigned short uint16_t;
  4. typedef unsigned int uint32_t;
  5. typedef unsigned long long uint64_t;
  6. typedef char int8_t;
  7. typedef short int16_t;
  8. typedef int int32_t;
  9. typedef long long int64_t;
  10. typedef unsigned int uintptr_t;
  11. typedef int intptr_t;
  12. _Static_assert(sizeof (uint8_t) == 1, "invalid size");
  13. _Static_assert(sizeof (uint16_t) == 2, "invalid size");
  14. _Static_assert(sizeof (uint32_t) == 4, "invalid size");
  15. _Static_assert(sizeof (uint64_t) == 8, "invalid size");
  16. _Static_assert(sizeof (int8_t) == 1, "invalid size");
  17. _Static_assert(sizeof (int16_t) == 2, "invalid size");
  18. _Static_assert(sizeof (int32_t) == 4, "invalid size");
  19. _Static_assert(sizeof (int64_t) == 8, "invalid size");
  20. _Static_assert(sizeof (uintptr_t) == sizeof (intptr_t), "invalid size");
  21. _Static_assert(sizeof (uintptr_t) == sizeof (void*), "invalid size");
  22. _Static_assert(sizeof (uintptr_t) == 4, "invalid size");
  23. #define UINT8_MAX 0xFF
  24. #define UINT16_MAX 0xFFFF
  25. #define UINT32_MAX 0xFFFFFFFFUL
  26. #define UINT64_MAX 0xFFFFFFFFFFFFFFFFULL
  27. #define INT8_MAX 0x7F
  28. #define INT16_MAX 0x7FFF
  29. #define INT32_MAX 0x7FFFFFFF
  30. #define INT64_MAX 0x7FFFFFFFFFFFFFFF
  31. #define INT8_MIN (-0x80)
  32. #define INT16_MIN (-0x8000)
  33. #define INT32_MIN (-0x80000000L)
  34. #define INT64_MIN (-0x8000000000000000LL)