Fossil SCM

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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button