Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/minizip/ints.h
14709 views
1
/* ints.h -- create integer types for 8, 16, 32, and 64 bits
2
* Copyright (C) 2024 Mark Adler
3
* For conditions of distribution and use, see the copyright notice in zlib.h
4
*
5
* There exist compilers with limits.h, but not stdint.h or inttypes.h.
6
*/
7
8
#ifndef INTS_H
9
#define INTS_H
10
#include <limits.h>
11
#if defined(UCHAR_MAX) && UCHAR_MAX == 0xff
12
typedef signed char i8_t;
13
typedef unsigned char ui8_t;
14
#else
15
# error "no 8-bit integer"
16
#endif
17
#if defined(USHRT_MAX) && USHRT_MAX == 0xffff
18
typedef short i16_t;
19
typedef unsigned short ui16_t;
20
#elif defined(UINT_MAX) && UINT_MAX == 0xffff
21
typedef int i16_t;
22
typedef unsigned ui16_t;
23
#else
24
# error "no 16-bit integer"
25
#endif
26
#if defined(UINT_MAX) && UINT_MAX == 0xffffffff
27
typedef int i32_t;
28
typedef unsigned ui32_t;
29
# define PI32 "d"
30
# define PUI32 "u"
31
#elif defined(ULONG_MAX) && ULONG_MAX == 0xffffffff
32
typedef long i32_t;
33
typedef unsigned long ui32_t;
34
# define PI32 "ld"
35
# define PUI32 "lu"
36
#else
37
# error "no 32-bit integer"
38
#endif
39
#if defined(ULONG_MAX) && ULONG_MAX == 0xffffffffffffffff
40
typedef long i64_t;
41
typedef unsigned long ui64_t;
42
# define PI64 "ld"
43
# define PUI64 "lu"
44
#elif defined(ULLONG_MAX) && ULLONG_MAX == 0xffffffffffffffff
45
typedef long long i64_t;
46
typedef unsigned long long ui64_t;
47
# define PI64 "lld"
48
# define PUI64 "llu"
49
#elif defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 0xffffffffffffffff
50
typedef long long i64_t;
51
typedef unsigned long long ui64_t;
52
# define PI64 "lld"
53
# define PUI64 "llu"
54
#else
55
# error "no 64-bit integer"
56
#endif
57
#endif
58
59