Source file inclusion

From cppreference.com
 
 
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements (loops)
Jump statements
Functions
Function declaration
Lambda function declaration
inline specifier
Exception specifications (deprecated)
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
decltype (C++11)
auto (C++11)
alignas (C++11)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Implicit conversions - Explicit conversions
static_cast - dynamic_cast
const_cast - reinterpret_cast
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
Miscellaneous
 
 

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

Contents

[edit] Syntax

#include <filename> (1)
#include "filename" (2)

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

Any preprocessing tokens (macro constants or expressions) are permitted as arguments to #include as long as they expand to a sequence of characters surrounded by < > or " ".

[edit] Example

#ifndef TEXT
    #include <iostream>
 
    int main()
    {
    #define TEXT "Hello, world!"
    #include __FILE__
    #define TEXT "Hello again!"
    #include __FILE__
 
    }
#else
    std::cout << TEXT << '\n';
    #undef TEXT
#endif

Output:

Hello, world!
Hello again!

[edit] See also

cpp/header a list of C++ Standard Library header files
C documentation for Source file inclusion