| |||
| Home > Getting started with the ARM Compiler > Include files > The current place | |||
By default, the ARM compiler uses Berkeley UNIX search rules,
so source files and #include header files are
searched for relative to the current place.
This is the directory containing the source or header file currently
being processed by the compiler.
When a file is found relative to an element of the search
path, the directory containing that file becomes the new current
place. When the compiler has finished processing that file, it restores
the previous current place. At each instant there is a stack of
current places corresponding to the stack of nested #include directives.
For example, if the current place is the include directory ...\include,
and the compiler is seeking the include file sys\defs.h,
it locates ...\include\sys\defs.h if it exists.
When the compiler begins to process defs.h,
the current place becomes ...\include\sys. Any
file included by defs.h that is not specified
with an absolute path name, is searched for relative to ...\include\sys.
The original current place ...\include is
restored only when the compiler has finished processing defs.h.
You can disable the stacking of current places by using the
compiler option --kandr_include. This option makes
the compiler use the search rule originally described by Kernighan
and Ritchie in The C Programming Language.
Under this rule each nonrooted user #include is
searched for relative to the directory containing the source file
that is being compiled. See --kandr_include in
the Compiler Reference Guide for more information.