Contents|Index|Previous|Next
Miscellaneous Preprocessing Directives
This section describes three additional preprocessing directives. They are not
very useful, but are mentioned for completeness.
The null directive consists of a
# followed by a Newline, with only whitespace (including comments) in between.
A null directive is understood as a preprocessing directive but has no effect
on the preprocessor output. The primary significance of the existence of the
null directive is that an input line consisting of just a # will produce no output, rather than a line of output containing just a #. Supposedly some old C programs contain such lines.
The ANSI standard specifies that the
#pragma directive has an arbitrary, implementation-defined effect. In the GNU C
preprocessor, #pragma directives are not used, except for #pragma once (see Once-Only Include Files). However, they are left in the preprocessor output, so they are available to
the compilation pass.
The
#ident directive is supported for compatibility with certain other systems. It is
followed by a line of text. On some systems, the text is copied into a special
place in the object file; on most systems, the text is ignored and this
directive has no effect. Typically, #ident is only used in header files supplied with those systems where it is
meaningful.