.TH macro "" "" Definition
.PC
.PP
A
.B macro
is a body of text that is given a name.
When the name is used in a program, it is replaced with the text
to which it refers; this is called macro
.IR expansion .
For example,
.B getchar()
is a macro that consists of the function call
.BR getc(stdin) .
The C preprocessor recognizes two varieties of macros:
.I object-like
and
.IR function-like .
.PP
When the C compiler performs macro substitution,
all escape sequences and trigraphs have been resolved.
After a macro has been expanded, the expanded text is scanned again to see
if the expansion itself contains any macros (not including the original macro
that has already been expanded).
This re-scanning continues until no further replacement is possible.
.PP
Most macros are defined in C headers.
The C preprocessor, however, defines some others.
.SH "See Also"
.Xr "#define," _23define
.Xr "C preprocessor," c_preproc
.Xr "m4," m4
.Xr "manifest constant," manifestc
.Xr "Programming COHERENT" programmi
.br
\*(AS, \(sc3.8.3
