7474extern " C" {
7575#endif
7676
77- /* Signed and unsigned integer types */
77+ /* =======================
78+ Signed and unsigned integer types
79+ ======================= */
7880#ifdef _MSC_VER
79- /* Windows */
8081 typedef __int8 i8 ; /* 8-bit signed integer */
8182 typedef __int16 i16 ; /* 16-bit signed integer */
8283 typedef __int32 i32 ; /* 32-bit signed integer */
@@ -87,7 +88,6 @@ extern "C" {
8788 typedef unsigned __int32 u32 ; /* 32-bit unsigned integer */
8889 typedef unsigned __int64 u64 ; /* 64-bit unsigned integer */
8990#else
90- /* POSIX / Linux / macOS */
9191 typedef int8_t i8 ; /* 8-bit signed integer */
9292 typedef int16_t i16 ; /* 16-bit signed integer */
9393 typedef int32_t i32 ; /* 32-bit signed integer */
@@ -99,7 +99,30 @@ extern "C" {
9999 typedef uint64_t u64 ; /* 64-bit unsigned integer */
100100#endif
101101
102- /* Floating point types (optional for precision) */
102+ /* =======================
103+ Hex, Binary, Octal integer types
104+ ======================= */
105+ /* Unsigned hex types (h8, h16, h32, h64) */
106+ typedef u8 h8;
107+ typedef u16 h16;
108+ typedef u32 h32;
109+ typedef u64 h64;
110+
111+ /* Unsigned binary types (b8, b16, b32, b64) */
112+ typedef u8 b8;
113+ typedef u16 b16;
114+ typedef u32 b32;
115+ typedef u64 b64;
116+
117+ /* Unsigned octal types (o8, o16, o32, o64) */
118+ typedef u8 o8;
119+ typedef u16 o16;
120+ typedef u32 o32;
121+ typedef u64 o64;
122+
123+ /* =======================
124+ Floating point types
125+ ======================= */
103126typedef float f32 ; /* 32-bit float */
104127typedef double f64 ; /* 64-bit double */
105128
0 commit comments