| 1234567891011121314151617181920212223242526272829303132333435363738 |
- #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
|