Perché non usi una funzione inline al posto del #define? I programmatori professionisti limitano l'uso delle macro e del preprocessore ai casi strettamente necessari.
By now, you've probably realized why people don't really like using macros. They're dangerous, they're picky, and they're just not that safe.