From ikegami's comment with Perl code, I had an idea. GNU C has block expressions, too, so one can do this:
#define rev_comma(lhs, rhs) ({const auto a = (lhs); rhs; a;})
for a reversed comma. It defines a constant a to be the left-hand side, evaluates the right-hand side, then returns a without evaluating the left-hand side again.