Find the macro bug when either argument has a side effect.
C
#define MAX_VALUE(left, right) \
((left) > (right) ? (left) : (right))
int select_next(int *cursor, int limit) {
return MAX_VALUE((*cursor)++, limit);
}
#define MAX_VALUE(left, right) \
((left) > (right) ? (left) : (right))
int select_next(int *cursor, int limit) {
return MAX_VALUE((*cursor)++, limit);
}