#include is a way of including a standard or user-defined file in the program and is mostly written at the beginning of any C/C++ program. This directive is read by the preprocessor and orders it to insert the content of a user-defined or system header file into the following program. These files are mainly imported from an outside source into the current program. The process of importing such files that might be system-defined or user-defined is known as File Inclusion. This type of preprocessor directive tells the compiler to include a file in the source code program. Here are the two types of file that can be included using #include:
- Header File or Standard files: This is a file which contains C/C++ function declarations and macro definitions to be shared between several source files. Functions like the printf(), scanf(), cout, cin and various other input-output or other standard functions are contained within different header files. So to utilise those functions, the users need to import a few header files which define the required functions.
- User-defined files: These files resembles the header files, except for the fact that they are written and defined by the user itself. This saves the user from writing a particular function multiple times. Once a user-defined file is written, it can be imported anywhere in the program using the #include preprocessor.
Including using ” “: When using the double quotes(” “), the preprocessor access the current directory in which the source “header_file” is located. This type is mainly used to access any header files of the user’s program or user-defined files.
Including using <>: While importing file using angular brackets(<>), the the preprocessor uses a predetermined directory path to access the file. It is mainly used to access system header files located in the standard system directories.
Example 1: This shows the import of a system I/O header or standard file.
Example 2: This shows the creation and import of user-defined file.
- Creating a user-defined header by the name of “process.h”.
// It is not recommended to put function definitions
// in a header file. Ideally there should be only
// function declarations. Purpose of this code is
// to only demonstrate working of header files.
, a + b);
, a * b);
- Created the main file where the above “process.h” will be included.
// C program to illustrate file inclusion
// <> used to import system header file
// " " used to import user-defined file
// main function
// add function defined in process.h
// mult function defined in process.h
// printf defined in stdio.h
Including the “process.h” file into another program. Now as we need to include stdio.h as #include in order to use printf() function similarly, we also need to include the header file process.h as #include “process.h”. The ” ” instructs the preprocessor to look into the present folder or the standard folder of all header files, if not found in the present folder. If angular brackets are used instead of ” ” one needs to can save it in the standard folder of header files. If you are using ” ” you need to ensure that the created header file is saved in the same folder in which the current C file using this header file is saved.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- How to include graphics.h in CodeBlocks?
- #pragma Directive in C/C++
- Inline namespaces and usage of the "using" directive inside namespaces
- std::less in C++ with Examples
- cin get() in C++ with Examples
- Pi(π) in C++ with Examples
- std::rank in C++ with Examples
- negative_binomial_distribution in C++ with Examples
- mbrtoc32() in C/C++ with Examples
- mbrtoc16() in C/C++ with Examples
- std::bit_or in C++ with Examples
- basic_istream::get() in C++ with Examples
- std::is_copy_constructible in C++ with Examples
- std::to_address in C++ with Examples
- wmemset() in C/C++ with Examples
- std::is_move_constructible in C++ with Examples
- std::make_signed in C++ with Examples
- std::is_nothrow_copy_constructible in C++ with Examples
- std::has_virtual_destructor in C++ with Examples
- std::is_move_assignable C++ with Examples
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.