Macro Versions of Arduino Functions

Sounds like it could be useful. Do you have an idea of how it would be implemented? Would you need a different syntax or could have you a "smart" macro that could tell if it had a compile-time constant or not?

In any case, I think we're considering adding support for (documenting really) the PORTx, DDRx, and PINx registers, which would provide fast i/o with macros and no overhead for looking up pin numbers in an array at runtime. Would that be a good solution for your uses?