Advantages of a macro over a function
Macro gets to see the Compilation environment, so it can expand____TIME__ __FILE__ #defines. It is expanded by the preprocessor.
For example
It can’t do this without macros:
You can define your mini language with macros:
Macros are a necessary evils of life. The purists don’t like them, but
without it no real work gets done.