 |
Traditional miscellany |
Here are some things to be aware of when using the traditional
preprocessor.
-
Preprocessing directives are recognized only when their leading
#
appears in the first column. There can be no whitespace
between the beginning of the line and the #
, but whitespace can
follow the #
.
-
A true traditional C preprocessor does not recognize
#error
or
#pragma
, and may not recognize #elif
. CPP supports all
the directives in traditional mode that it supports in ISO mode,
including extensions, with the exception that the effects of
#pragma GCC poison
are undefined.
-
__STDC__ is not defined.
-
If you use digraphs the behavior is undefined.
-
If a line that looks like a directive appears within macro arguments,
the behavior is undefined.