Files
armorpaint/base/sources/libs/kong/array.h
T

39 lines
1.9 KiB
C
Raw Normal View History

2025-03-18 10:39:01 +01:00
#ifndef KONG_ARRAY_HEADER
#define KONG_ARRAY_HEADER
#define static_array(type, name, max_size) \
typedef struct name { \
type values[max_size]; \
size_t size; \
size_t max; \
} name;
/*#define static_array_with_init(type, name, max_size) \
struct { \
type values[max_size]; \
size_t size; \
size_t max; \
} name; \
name.size = 0; \
name.max = max_size;*/
#define static_array_init(array) \
array.size = 0; \
array.max = sizeof(array.values) / sizeof(array.values[0])
#define static_array_push(array, value) \
if (array.size >= array.max) { \
debug_context context = {0}; \
error(context, "Array overflow"); \
} \
array.values[array.size++] = value;
#define static_array_push_p(array, value) \
if (array->size >= array->max) { \
debug_context context = {0}; \
error(context, "Array overflow"); \
} \
array->values[array->size++] = value;
#endif