Difference between revisions of "cpp/preprocessor/include"
From cppreference.com
< cpp | preprocessor
m (Shorten template names. Use {{lc}} where appropriate.) |
|||
Line 8: | Line 8: | ||
{{sdsc | num=1 | {{ttb|#include <}}{{spar|filename}}{{ttb|>}} }} | {{sdsc | num=1 | {{ttb|#include <}}{{spar|filename}}{{ttb|>}} }} | ||
{{sdsc | num=2 | {{ttb|#include "}}{{spar|filename}}{{ttb|"}} }} | {{sdsc | num=2 | {{ttb|#include "}}{{spar|filename}}{{ttb|"}} }} | ||
+ | {{sdsc | num=3 | {{ttb|#include}} {{spar|pp-tokens}} }} | ||
{{sdsc end}} | {{sdsc end}} | ||
===Explanation=== | ===Explanation=== | ||
− | Includes source file, identified by {{spar|filename}} into the current source file at the line immediately after the directive. | + | Includes source file, identified by {{spar|filename}} into the current source file at the line immediately after the directive. In the case the file is not found, program is ill-formed. |
− | + | @1@ searches only standard include directories. The standard C++ library, as well as standard C library, is implicitly included in standard include directories. The standard include directories can be controlled by the user through compiler options. | |
− | + | @2@ firstly searches the directory where the current file resides and, only if the file is not found, searches the standard include directories. | |
+ | |||
+ | @3@ a #include directive which does not match one of the above forms is allowed. After the macros among {{spar|pp-tokens}} are expanded as in normal text, the directive is treated as one of the above form. The program is ill-formed if the directive after the expansion can't match one of the above form. | ||
− | |||
[[ar:cpp/preprocessor/include]] | [[ar:cpp/preprocessor/include]] |
Revision as of 04:33, 27 January 2014
Includes other source file into current source file at the line immediately after the directive .
Syntax
#include < filename>
|
(1) | ||||||||
#include " filename"
|
(2) | ||||||||
#include pp-tokens
|
(3) | ||||||||
Explanation
Includes source file, identified by filename into the current source file at the line immediately after the directive. In the case the file is not found, program is ill-formed.
1) searches only standard include directories. The standard C++ library, as well as standard C library, is implicitly included in standard include directories. The standard include directories can be controlled by the user through compiler options.
2) firstly searches the directory where the current file resides and, only if the file is not found, searches the standard include directories.
3) a #include directive which does not match one of the above forms is allowed. After the macros among pp-tokens are expanded as in normal text, the directive is treated as one of the above form. The program is ill-formed if the directive after the expansion can't match one of the above form.