啥都不说,先上代码
static void vector_array_test(void)
{
VECTOR v;
ARRAY a;
int aa[5];
int b = 0;
VECTOR_INIT(v, int);
VECTOR_RESIZE(v, 5, int);
ARRAY_INIT(a, 5, int);
#define OUT(x) printf("%d\n", x)
#define IN(x) scanf("%d", &x)
#define FILL_INCREASE(x) x = ++b
#define FILL_DECREASE(x) x = --b
FOR_EACH(VECTOR_BEGIN(v), VECTOR_END(v), VECTOR_ITERATOR, int, FILL_INCREASE);
FOR_EACH(VECTOR_BEGIN(v), VECTOR_END(v), VECTOR_ITERATOR, int, OUT);
FOR_EACH(ARRAY_BEGIN(a), ARRAY_END(a), ARRAY_ITERATOR, int, FILL_DECREASE);
FOR_EACH(ARRAY_BEGIN(a), ARRAY_END(a), ARRAY_ITERATOR, int, OUT);
FOR_EACH(aa, aa + 5, ARRAY_ITERATOR, int, IN);
FOR_EACH(aa, aa + 5, ARRAY_ITERATOR, int, OUT);
COPY(aa, aa + 5, ARRAY_ITERATOR, int, VECTOR_BEGIN(v), VECTOR_ITERATOR, int);
FOR_EACH(VECTOR_BEGIN(v), VECTOR_END(v), VECTOR_ITERATOR, int, OUT);
VECTOR_DESTROY(v