#define nn(sp) ((sp)->nn)
The inner parentheses are required. If you pass a pointer like p + 10
or *p
to nn
macro, you would get some troubles without the inner parentheses as ->
has higher precedence than +
and unary *
.
The outer parentheses are not required here as the expression involves a postfix operation and no operator has greater precedence than postfix operators.