diff options
author | ai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2011-07-10 06:17:06 +0000 |
---|---|---|
committer | ai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2011-07-10 06:17:06 +0000 |
commit | 9ef634559f3cde232586b1dc6fd00bea3f3d8e53 (patch) | |
tree | 541295af8a6fbfe15b09da353680be6dd4d6b3ff /src/common/cbasetypes.h | |
parent | 9c100697bf79604fcef8b7eedbadeed45c63b41b (diff) | |
download | hercules-9ef634559f3cde232586b1dc6fd00bea3f3d8e53.tar.gz hercules-9ef634559f3cde232586b1dc6fd00bea3f3d8e53.tar.bz2 hercules-9ef634559f3cde232586b1dc6fd00bea3f3d8e53.tar.xz hercules-9ef634559f3cde232586b1dc6fd00bea3f3d8e53.zip |
* Merged changes from trunk [14827:14894/trunk].
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/renewal@14895 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/common/cbasetypes.h')
-rw-r--r-- | src/common/cbasetypes.h | 111 |
1 files changed, 36 insertions, 75 deletions
diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h index aee54a4bc..e2fe17555 100644 --- a/src/common/cbasetypes.h +++ b/src/common/cbasetypes.h @@ -78,14 +78,9 @@ // NOTE: Visual C++ uses <inttypes.h> and <stdint.h> provided in /3rdparty ////////////////////////////////////////////////////////////////////////// #include <inttypes.h> - -////////////////////////////////////////////////////////////////////////// -// typedefs to compensate type size change from 32bit to 64bit -// MS implements LLP64 model, normal unix does LP64, -// only Silicon Graphics/Cray goes ILP64 so don't care (and don't support) -////////////////////////////////////////////////////////////////////////// - +#include <stdint.h> #include <limits.h> + // ILP64 isn't supported, so always 32 bits? #ifndef UINT_MAX #define UINT_MAX 0xffffffff @@ -95,49 +90,56 @@ // Integers with guaranteed _exact_ size. ////////////////////////////////////////////////////////////////////////// -#define SIZEOF_LONG 4 -#define SIZEOF_INT 4 -#define HAVE_INT_8_16_32 +typedef int8_t int8; +typedef int16_t int16; +typedef int32_t int32; +typedef int64_t int64; -typedef char int8; -typedef short int16; -typedef int int32; +typedef int8_t sint8; +typedef int16_t sint16; +typedef int32_t sint32; +typedef int64_t sint64; -typedef signed char sint8; -typedef signed short sint16; -typedef signed int sint32; - -typedef unsigned char uint8; -typedef unsigned short uint16; -typedef unsigned int uint32; +typedef uint8_t uint8; +typedef uint16_t uint16; +typedef uint32_t uint32; +typedef uint64_t uint64; #undef UINT8_MIN #undef UINT16_MIN #undef UINT32_MIN -#define UINT8_MIN ((uint8) 0) -#define UINT16_MIN ((uint16)0) -#define UINT32_MIN ((uint32)0) +#undef UINT64_MIN +#define UINT8_MIN ((uint8) UINT8_C(0x00)) +#define UINT16_MIN ((uint16)UINT16_C(0x0000)) +#define UINT32_MIN ((uint32)UINT32_C(0x00000000)) +#define UINT64_MIN ((uint64)UINT64_C(0x0000000000000000)) #undef UINT8_MAX #undef UINT16_MAX #undef UINT32_MAX -#define UINT8_MAX ((uint8) 0xFF) -#define UINT16_MAX ((uint16)0xFFFF) -#define UINT32_MAX ((uint32)0xFFFFFFFF) +#undef UINT64_MAX +#define UINT8_MAX ((uint8) UINT8_C(0xFF)) +#define UINT16_MAX ((uint16)UINT16_C(0xFFFF)) +#define UINT32_MAX ((uint32)UINT32_C(0xFFFFFFFF)) +#define UINT64_MAX ((uint64)UINT64_C(0xFFFFFFFFFFFFFFFF)) #undef SINT8_MIN #undef SINT16_MIN #undef SINT32_MIN -#define SINT8_MIN ((sint8) 0x80) -#define SINT16_MIN ((sint16)0x8000) -#define SINT32_MIN ((sint32)0x80000000) +#undef SINT64_MIN +#define SINT8_MIN ((sint8) INT8_C(0x80)) +#define SINT16_MIN ((sint16)INT16_C(0x8000)) +#define SINT32_MIN ((sint32)INT32_C(0x80000000)) +#define SINT64_MIN ((sint32)INT64_C(0x8000000000000000)) #undef SINT8_MAX #undef SINT16_MAX #undef SINT32_MAX -#define SINT8_MAX ((sint8) 0x7F) -#define SINT16_MAX ((sint16)0x7FFF) -#define SINT32_MAX ((sint32)0x7FFFFFFF) +#undef SINT64_MAX +#define SINT8_MAX ((sint8) INT8_C(0x7F)) +#define SINT16_MAX ((sint16)INT16_C(0x7FFF)) +#define SINT32_MAX ((sint32)INT32_C(0x7FFFFFFF)) +#define SINT64_MAX ((sint64)INT64_C(0x7FFFFFFFFFFFFFFF)) ////////////////////////////////////////////////////////////////////////// // Integers with guaranteed _minimum_ size. @@ -173,51 +175,10 @@ typedef int ssize_t; ////////////////////////////////////////////////////////////////////////// -// portable 64-bit integers -////////////////////////////////////////////////////////////////////////// -#if defined(_MSC_VER) || defined(__BORLANDC__) -typedef __int64 int64; -typedef signed __int64 sint64; -typedef unsigned __int64 uint64; -#else -typedef long long int64; -typedef signed long long sint64; -typedef unsigned long long uint64; -#endif - -#ifndef INT64_MIN -#define INT64_MIN (INT64_C(-9223372036854775807)-1) -#endif -#ifndef INT64_MAX -#define INT64_MAX (INT64_C(9223372036854775807)) -#endif -#ifndef UINT64_MAX -#define UINT64_MAX (UINT64_C(18446744073709551615)) -#endif - - -////////////////////////////////////////////////////////////////////////// // pointer sized integers ////////////////////////////////////////////////////////////////////////// -#undef UINTPTR_MIN -#undef UINTPTR_MAX -#undef INTPTR_MIN -#undef INTPTR_MAX -#ifdef __64BIT__ -typedef uint64 uintptr; -typedef int64 intptr; -#define UINTPTR_MIN UINT64_MIN -#define UINTPTR_MAX UINT64_MAX -#define INTPTR_MIN INT64_MIN -#define INTPTR_MAX INT64_MAX -#else -typedef uint32 uintptr; -typedef int32 intptr; -#define UINTPTR_MIN UINT32_MIN -#define UINTPTR_MAX UINT32_MAX -#define INTPTR_MIN INT32_MIN -#define INTPTR_MAX INT32_MAX -#endif +typedef intptr_t intptr; +typedef uintptr_t uintptr; ////////////////////////////////////////////////////////////////////////// |