找出 MAX_VALUE 宏里的 bug

来自 C 预处理器
C23 (GCC 13.3.0) 进阶 4分钟 找出 1处问题

找出实参带副作用时出现的宏错误。

C
#define MAX_VALUE(left, right) \
    ((left) > (right) ? (left) : (right))

int select_next(int *cursor, int limit) {
    return MAX_VALUE((*cursor)++, limit);
}
在试验场中打开
报告错误