VecForeachPtrReverse
- Macro
- October 8, 2025
Table of Contents
VecForeachPtrReverse
VecForeachPtrReverse
Description
Iterate over each element var
(as a pointer) of the given vector v
in reverse order. This is a convenience macro that iterates backward using an internally managed index and provides a pointer to each element. The variable var
is declared and defined by this macro as a pointer to the vector’s data type.
Parameters
Name | Direction | Description |
---|---|---|
v | in,out | Vector to iterate over. |
var | in | Name of the pointer variable to be used which will point to the current element during iteration. The type of var will be a pointer to the data type of the vector elements (obtained via VEC_DATATYPE(v) * ). |
Usage example (Cross-references)
// Test VecForeachPtrReverse macro
bool test_vec_foreach_ptr_reverse(void) {
WriteFmt("Testing VecForeachPtrReverse\n");
// Create a vector of integers
// Use VecForeachPtrReverse to increment values in reverse order
int increment = 1;
VecForeachPtrReverse(&vec, item_ptr) {
*item_ptr += increment++;
}
- In
Foreach.h:120
:
/// implementation (e.g., `char*`).
///
#define StrForeachPtrReverse(str, chrptr) VecForeachPtrReverse((str), (chrptr))
///
- In
VecInt.c:465
:
if (VecLen(vec) > 0) {
int sum = 0;
VecForeachPtrReverse(vec, item_ptr) {
sum += *item_ptr;
}
- In
VecStr.c:495
:
if (VecLen(vec) > 0) {
size_t total_len = 0;
VecForeachPtrReverse(vec, str_ptr) {
total_len += ZstrLen(str_ptr->data);
}
- In
VecCharPtr.c:533
:
if (VecLen(vec) > 0) {
size_t total_len = 0;
VecForeachPtrReverse(vec, str_ptr) {
total_len += strlen(*str_ptr);
}