#define MAX_VALUE(left, right) \ ((left) > (right) ? (left) : (right)) int select_next(int *cursor, int limit) { return MAX_VALUE((*cursor)++, limit); }