From 5b22053ff3f0c2ebc2e22b5a2a17cb740b7e7be1 Mon Sep 17 00:00:00 2001 From: Robear Selwans Date: Wed, 5 Jan 2022 22:14:29 +0200 Subject: [PATCH] Number types changes Signed-off-by: Robear Selwans --- ev_hash.h | 2 +- ev_internal.h | 35 ++++++++++++++++++++++++----------- ev_numeric.h | 47 +++++++++++++++++++++++++++-------------------- ev_types.h | 10 +++++----- 4 files changed, 57 insertions(+), 37 deletions(-) diff --git a/ev_hash.h b/ev_hash.h index 054dfe8..ec053c2 100644 --- a/ev_hash.h +++ b/ev_hash.h @@ -1,7 +1,7 @@ #ifndef EV_HEADERS_HASH_H #define EV_HEADERS_HASH_H -#include "ev_numeric.h" +#include "ev_internal.h" /*! * \brief MurmurHash3 64-bit version. Returns 64-bit hash instead of 128 diff --git a/ev_internal.h b/ev_internal.h index f7bb826..752066e 100644 --- a/ev_internal.h +++ b/ev_internal.h @@ -1,21 +1,34 @@ #ifndef EV_HEADERS_INTERNAL_H #define EV_HEADERS_INTERNAL_H -typedef signed char __ev_int8_t; -typedef short int __ev_int16_t; -typedef int __ev_int32_t; -typedef long long int __ev_int64_t; +typedef signed char i8; +typedef short int i16; +typedef int i32; +typedef long long int i64; -typedef unsigned char __ev_uint8_t; -typedef unsigned short int __ev_uint16_t; -typedef unsigned int __ev_uint32_t; -typedef unsigned long long int __ev_uint64_t; +typedef unsigned char u8; +typedef unsigned short int u16; +typedef unsigned int u32; +typedef unsigned long long int u64; -typedef float __ev_float32_t; -typedef double __ev_float64_t; +typedef float f32; +typedef double f64; -typedef _Bool __ev_bool; +typedef _Bool bool; #define true 1 #define false 0 +#define i8_const(v) (i8){v} +#define i16_const(v) (i16){v} +#define i32_const(v) (i32){v} +#define i64_const(v) (i64){v} + +#define u8_const(v) (u8){v} +#define u16_const(v) (u16){v} +#define u32_const(v) (u32){v} +#define u64_const(v) (u64){v} + +#define f32_const(v) (f32){v} +#define f64_const(v) (f64){v} + #endif // EV_HEADERS_INTERNAL_H diff --git a/ev_numeric.h b/ev_numeric.h index f0ff663..1860315 100644 --- a/ev_numeric.h +++ b/ev_numeric.h @@ -5,30 +5,37 @@ #include "ev_types.h" // Signed integers -EV_TYPEDEF(i8 , __ev_int8_t); TYPEDATA_GEN(i8); -#define i8_const(v) (i8){v} -EV_TYPEDEF(i16, __ev_int16_t); TYPEDATA_GEN(i16); -#define i16_const(v) (i16){v} -EV_TYPEDEF(i32, __ev_int32_t); TYPEDATA_GEN(i32); -#define i32_const(v) (i32){v} -EV_TYPEDEF(i64, __ev_int64_t); TYPEDATA_GEN(i64); -#define i64_const(v) (i64){v} +EV_REGISTER_TYPE(i8); +TYPEDATA_GEN(i8, DEFAULT(0)); + +EV_REGISTER_TYPE(i16); +TYPEDATA_GEN(i16, DEFAULT(0)); + +EV_REGISTER_TYPE(i32); +TYPEDATA_GEN(i32, DEFAULT(0)); + +EV_REGISTER_TYPE(i64); +TYPEDATA_GEN(i64, DEFAULT(0)); // Unsigned integers -EV_TYPEDEF(u8 , __ev_uint8_t); TYPEDATA_GEN(u8); -#define u8_const(v) (u8){v} -EV_TYPEDEF(u16, __ev_uint16_t); TYPEDATA_GEN(u16); -#define u16_const(v) (u16){v} -EV_TYPEDEF(u32, __ev_uint32_t); TYPEDATA_GEN(u32); -#define u32_const(v) (u32){v} -EV_TYPEDEF(u64, __ev_uint64_t); TYPEDATA_GEN(u64); -#define u64_const(v) (u64){v} +EV_REGISTER_TYPE(u8); +TYPEDATA_GEN(u8, DEFAULT(0)); + +EV_REGISTER_TYPE(u16); +TYPEDATA_GEN(u16, DEFAULT(0)); + +EV_REGISTER_TYPE(u32); +TYPEDATA_GEN(u32, DEFAULT(0)); + +EV_REGISTER_TYPE(u64); +TYPEDATA_GEN(u64, DEFAULT(0)); // Floating-Point Numbers -EV_TYPEDEF(f32, __ev_float32_t); TYPEDATA_GEN(f32); -#define f32_const(v) (f32){v} -EV_TYPEDEF(f64, __ev_float64_t); TYPEDATA_GEN(f64); -#define f64_const(v) (f64){v} +EV_REGISTER_TYPE(f32); +TYPEDATA_GEN(f32, DEFAULT(0.0f)); + +EV_REGISTER_TYPE(f64); +TYPEDATA_GEN(f64, DEFAULT(0.0)); struct Int8Data { i8 MIN; i8 MAX; }; struct Int16Data { i16 MIN; i16 MAX; }; diff --git a/ev_types.h b/ev_types.h index 1a56462..2192d86 100644 --- a/ev_types.h +++ b/ev_types.h @@ -7,14 +7,14 @@ typedef void(*ev_copy_fn)(void *dst, void *src); typedef void(*ev_free_fn)(void *self); -typedef __ev_uint64_t(*ev_hash_fn)(void *self, __ev_uint64_t seed); -typedef __ev_bool(*ev_equal_fn)(void *self, void *other); +typedef u64(*ev_hash_fn)(void *self, u64 seed); +typedef bool(*ev_equal_fn)(void *self, void *other); typedef struct { EV_DEBUG(const char *name;) - __ev_uint32_t size; - __ev_uint32_t alignment; + u32 size; + u32 alignment; ev_copy_fn copy_fn; ev_free_fn free_fn; @@ -42,7 +42,7 @@ typedef struct { #define DEFINE_DEFAULT_HASH_FUNCTION(T) \ DEFINE_HASH_FUNCTION(T,DEFAULT) { ev_hash_murmur3(self, sizeof(T), seed); } -#define DEFINE_EQUAL_FUNCTION(T,name) __ev_bool EQUAL_FUNCTION(T,name)(T *self, T *other) +#define DEFINE_EQUAL_FUNCTION(T,name) bool EQUAL_FUNCTION(T,name)(T *self, T *other) #define DEFINE_DEFAULT_EQUAL_FUNCTION(T) \ DEFINE_EQUAL_FUNCTION(T,DEFAULT) { return *self == *other; }