using same for keyword for unrelated loops will definitely improve readability.
Also, I can implement that even in C99: #define GENSYM2(N,L) __##N##L #define GENSYM1(N,L) GENSYM2(N,L) #define GENSYM(N) GENSYM1(N,__LINE__) #define times(I,N) for(int I=0, GENSYM(C)=(N); I<GENSYM(C); I++)