Open In App

#include in C

Last Updated : 27 May, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

In C programming, the #include directive is very important to integrate any external files (header files) into a program, as the #include is used for file inclusion(a process of importing system-defined or user-defined files into the program).
The #include is read by the preprocessor and instructs it to insert the contents of a user-defined or system header file into our C program. These files are mainly imported from outside header files.

#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 program.

Including Header Files using #include

There are two types of files that can be included using #include:

1. Pre-Existing Header Files: The pre-existing header files come bundled with the compiler and reside in the standard system file directory. This file contains C standard library 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 Pre-Existing header files.

2. User-Defined Header Files: These files resemble 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.

Syntax of #include in C

There are two variations of how we can use #include in our C program.

1. Including using <>

It is mainly used to access pre-existing system header files located in the standard system directories.

C
#include <header_file>

While importing a file using angular brackets(<>), the preprocessor uses a predetermined directory path to access the file.

2. Including using " "

This type is mainly used to access any header files of the user's program or user-defined files.

C
#include "user-defined_file"

When using the double quotes(" "), the preprocessor accesses the current directory in which the source "header_file" is located or the standard system directories.

To import the user-defined header file using #include, the file should be in a directory path relative to your C source file otherwise, the preprocessor will begin search for it in the standard system directory.

To know more refer to Difference between #include <> and #include "" 

Examples of #include in C

Example 1

The below code shows the import of a system I/O header or standard file.

C
// C program showing the header file including
// standard input-output header file

#include <stdio.h>

int main()
{

    // "printf()" belongs to stdio.h
    printf("hello world");
    return 0;
}

Output
hello world

Example 2

In the below example, the #include <math.h> directive allows us to use mathematical functions like sqrt for calculating the square root.

C
// C program to calculate square root of a number using the
// math library functions

#include <math.h> // Including math header for mathematical operations
#include <stdio.h>

int main()
{
    double num = 14.0;
    double Res = sqrt(num);

    printf("Square root of %.2f is %.2f\n", num, Res);
    return 0;
}

Output
Square root of 14.00 is 3.74

Example 3

The below code shows the creation and import of a user-defined file.

Creating a user-defined header by the name of "process.h".

C
// 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.

void add(int a, int b)
{
    printf("Added value=%d\n", a + b);
}

void multiply(int a, int b)
{
    printf("Multiplied value=%d\n", a * b);
}

Creating the main file where the above "process.h" will be included. 

C
// C program to illustrate file inclusion
// <> used to import system header file
#include <stdio.h>

// " " used to import user-defined file
#include "process.h"

// main function
int main()
{
    // add function defined in process.h
    add(10, 20);

    // multiply function defined in process.h
    multiply(10, 20);

    // printf defined in stdio.h
    printf("Process completed");
    return 0;
}


Explanation: Including the "process.h" file into another program. Now as we need to include stdio.h using #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.

Note: If angular brackets (< >) are used instead of " " the compiler will search for the header file 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.


Practice Tags :

Similar Reads