Mercurial > code
changeset 27:02b0ee204042
Added ARRAY_FOREACH_R. Same functionality as ARRAY_FOREACH but reversal.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 21 Sep 2011 12:03:23 +0200 |
parents | 4fd9ecbbb143 |
children | 904a373aa120 |
files | array.h |
diffstat | 1 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/array.h Sun Sep 18 14:09:37 2011 +0200 +++ b/array.h Wed Sep 21 12:03:23 2011 +0200 @@ -52,7 +52,12 @@ void array_clear(struct array *); void array_free(struct array *); -#define ARRAY_FOREACH(array, var, i) \ - for (i = 0, var = array->data; i < array->length; ++i, ++var) +#define ARRAY_FOREACH(a, var, i) \ + for (i = 0, var = a->data; i < a->length; ++i, ++var) + +#define ARRAY_FOREACH_R(a, var, i) \ + for (i = 0, \ + var = (void *) ((char *) a->data + a->unit * (a->length - 1)); \ + i < a->length; ++i, --var) #endif /* _ARRAY_H_ */