Go to the first, previous, next, last section, table of contents.

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 section 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.


Go to the first, previous, next, last section, table of contents.