This macro is defined in sfr_defs.h like...
#define _SFR_IO_ADDR(sfr) ((sfr) - __SFR_OFFSET)
But when I create a preprocessed source file it expands like...
app.c
_SFR_IO_ADDR(0x3F);
app.i
(((uint16_t) &(0x3F)) - 0x20);
How and/or why is the addressing symbol '&' there?