#ifndef ARRAY_DECL_H
#define ARRAY_DECL_H
#define ARRAY(array_type) union { struct array arr; array_type const *const *v; array_type **v_modifiable; }
union array ## __ ## name { struct array arr; array_type const *const *v; array_type **v_modifiable; }
struct array {
};
ARRAY_DEFINE_TYPE(string, char *);
ARRAY_DEFINE_TYPE(const_string, const char *);
ARRAY_DEFINE_TYPE(uint, unsigned int);
ARRAY_DEFINE_TYPE(void_array, void *);
#endif