#define %2%_array_count(a) ((a)->nelts) #define %2%_array_get_first(a) ((a)->elts) #define %2%_array_get_index(a,n) ((void*) ((char*) (a)->elts + (a)->size * n)) #define %2%_array_get_last(a) ((void*) ((char*) (a)->elts + (a)->size * ((a)->nelts - 1))) #define %2%_array_get_reverse_index(a,n) ((void*) ((char*) (a)->elts + (a)->size * ((a)->nelts - 1 - n))) #define %2%_array_push_clean(p,a) {p = %1%_array_push (a); %2%_zerop (p);}