141: Sidetrip
Note how strongly functions differ from macros:
- Functions are called at run time. Macros are expanded at compile time.
- Function parameters are typed. Macro parameters are not.
- Function arguments are evaluated, and copies of those values are assigned
to parameters. Macro arguments are not evaluated; instead, they are
viewed as text to be substituted
for the macro's parameters
before the real work of compilation begins.
Because macro parameters are replaced by text, macros are said to be
handled as call-by-name parameters.