C++のマクロ
から引用。
#define REP(i, n) for (int i = 0; (i) < (n); ++i)
#define REPD(i, n) for (int i = (n)-1; (i) >= 0; --i) // 逆ループ
#define FOR(i, a, b) for (int i = (a); (i) < (b); ++i) // 任意範囲
#define ALL(a) (a), (a) + sizeof(a)/sizeof((a)[0]) // 範囲(配列用)