Y llegué a este ejemplo básico.
Código
#include <stdio.h> // Desde 1 hasta top. Haz lo que quiereas con el valor en medio ------------------------------ #define foreach(var, top) for(int foreach_var = (top); var = f(foreach_var); foreach_var = 0) int f(unsigned number) { static unsigned top; static unsigned actual; if(number != 0) { top = number; actual = 0; } if(actual == top) return 0; return ++actual; } // ------------------------------------------------------------------------------------------- int main(){ int x; /* Nueva funcionalidad */ foreach(x, 5) { } }
Lo dicho, es básico, pero se podría ir mejorando o hacer otras cosas, por supuesto.