#define NOTMAX(x,y) x>=y ? x : y int x = 3, y = 4, a = 5, b = 6; NOTMAX(a,3); a>=3 ? a : 3; => 5 NOTMAX(y,x); y>=x ? y : x; => 4 NOTMAX(--x,2); --x>=3 ? --x : 2; => 1 NOTMAX(b,NOTMAX(5,2)); b>=5>=2 ? 5 : 2 ? b : 5>=2 ? 5 : 2 => 6