#include
' Directive
Both user and system header files are included using the preprocessing
directive `#include
'. It has three variants:
#include <file>
-I
'
(see Invocation). The option `-nostdinc
' inhibits searching
the standard system directories; in this case only the directories
you specify are searched.
The parsing of this form of `#include
' is slightly special
because comments are not recognized within the `<...>
'.
Thus, in `#include <x/*y>
' the `/*
' does not start a comment
and the directive specifies inclusion of a system header file named
`x/*y
'. Of course, a header file with such a name is unlikely to
exist on Unix, where shell wildcard features would make it hard to
manipulate.
The argument file may not contain a `>
' character. It may,
however, contain a `<
' character.
#include "file"
-I-
' option is
used, the special treatment of the current directory is inhibited.)
The argument file may not contain `"
' characters. If
backslashes occur within file, they are considered ordinary text
characters, not escape characters. None of the character escape
sequences appropriate to string constants in C are processed. Thus,
`#include "x\n\\y"
' specifies a filename containing three
backslashes. It is not clear why this behavior is ever useful, but
the ANSI standard specifies it.
#include anything else
#include
'
directive whose argument does not fit the above two forms is a computed
include. The text anything else is checked for macro calls,
which are expanded (see Macros). When this is done, the result
must fit one of the above two variants---in particular, the expanded
text must in the end be surrounded by either quotes or angle braces.
This feature allows you to define a macro which controls the file name to be used at a later point in the program. One application of this is to allow a site-specific configuration file for your program to specify the names of the system include files to be used. This can help in porting the program to various operating systems in which the necessary system header files are found in different places.
Packaging copyright © 1988-2000 OAR Corporation
Context copyright by each document's author. See Free Software Foundation for information.