Here\'s some more weird macro behavior I was hoping somebody could shed light on:
#define MAX(a,b) (a>b?a:b) void main(void) { int a = 3, b=4; print
Macros are evaluated by the preprocessor which stupidly replaces all according to the macro definitions. In your case, MAX(a++, b++) becomes (a++>b++) ? a++ : b++.
MAX(a++, b++)
(a++>b++) ? a++ : b++