3.4 Using optimized constructs
3.4.2 Macro expansion
When an application of a macro, a compiler macro, or a function defined by usingdefsubst
is processed at compilation time, the macro expansion or the in-line code for the function defined bydefsubst
is substituted for the original form. This substitution at compilation time produces the following restrictions:
- Because only the macro expansion is invoked during execution, the macro call does not appear on the stack and cannot be traced.
- When a file is compiled, the macro definition must precede the first use of the macro in text; otherwise, the Compiler treats the macro call as an ordinary function call, which causes a run-time error.
- If a macro is redefined, any code using the macro definition must be recompiled.
The Advanced User's Guide - 9 SEP 1996 Generated with Harlequin WebMaker