|Synopsis:||Be aware of side-effects when using macros|
Assume we have the following macro:
#define MAX(a, b) ((a) > (b) ? (a) : (b))
When the macro is used as follows:
it is expanded as follows:
i++ > j ? i++ : j
If i is greater than j, it is incremented twice.