e = ((a < d) ? (a++) : (a = d))
//advance if else condition
You can use '#' sign to get exact name of an argument passed to a macro:
#define what_is(x) cerr << #x << " is " << x << endl;
int variable = 376;
what_is(variable);
// prints "variable is 376"