Source file inclusion

From cppreference.com
 
 
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements
Jump statements
Functions
function declaration
lambda function declaration
function template
inline specifier
exception specifications (deprecated)
noexcept specifier (C++11)
Exceptions
Namespaces
Types
decltype specifier (C++11)
Specifiers
cv specifiers
storage duration specifiers
constexpr specifier (C++11)
auto specifier (C++11)
alignas specifier (C++11)
Initialization
Literals
Expressions
alternative representations
Utilities
Types
typedef declaration
type alias declaration (C++11)
attributes (C++11)
Casts
implicit conversions
const_cast conversion
static_cast conversion
dynamic_cast conversion
reinterpret_cast conversion
C-style and functional cast
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
class template
function template
template specialization
parameter packs (C++11)
Miscellaneous
Inline assembly
 
 

Includes other source file into current source file at the line immediately after the directive .

[edit] Syntax

#include <filename> (1)
#include "filename" (2)
#include pp-tokens (3)

[edit] 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.