OSDN Git Service

044da028d965145be588cf2d012c9930ee05a6c1
[jnethack/source.git] / include / integer.h
1 /* NetHack 3.6  integer.h       $NHDT-Date: 1524689514 2018/04/25 20:51:54 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.0 $ */
2 /*      Copyright (c) 2016 by Michael Allison          */
3 /* NetHack may be freely redistributed.  See license for details. */
4
5 /* integer.h -- provide sized integer types */
6
7 #ifndef INTEGER_H
8 #define INTEGER_H
9
10 #if defined(__STDC__) && __STDC__ >= 199101L
11
12 /* The compiler claims to conform to C99. Use stdint.h */
13 #include <stdint.h>
14 typedef uint8_t uint8;
15 typedef int16_t int16;
16 typedef uint16_t uint16;
17 typedef int32_t int32;
18 typedef uint32_t uint32;
19
20 #else /* !C99 */
21
22 /* Provide uint8, int16, uint16, int32 and uint32 */
23 typedef unsigned char uint8;
24 typedef short int16;
25 typedef unsigned short uint16;
26
27 #if defined(__WATCOMC__) && !defined(__386__)
28 /* Open Watcom providing a 16 bit build for MS-DOS or OS/2 */
29 /* int is 16 bits; use long for 32 bits */
30 typedef long int32;
31 typedef unsigned long uint32;
32 #else
33 /* Otherwise, assume either a 32- or 64-bit compiler */
34 /* long may be 64 bits; use int for 32 bits */
35 typedef int int32;
36 typedef unsigned int uint32;
37 #endif
38
39 #endif /* !C99 */
40
41 #endif /* INTEGER_H */