to be more precise, macro's aren't "function calls" as you say it.

a better analogy is that they are "substituted" in-place by by the compiler in a separate step before the actual compilation.

...