You have to take care for operator precedence, if you are using macro with arguments.
Proper use of parentheses inside the macro definition will avoid trouble. For example:
#define Square(x) ((x)*(x))
and
#define Square(x) x*x
This above two will give different result.