As we all know that files with .h extension are called header files in C. These header files generally contain function declarations which we can be used in our main C program, like for e.g. there is need to include stdio.h in our C program to use function printf() in the program. So the question arises, is it possible to create your own header file?
The answer to the above is yes. header files are simply files in which you can declare your own functions that you can use in your main program or these can be used while writing large C programs.
NOTE:Header files generally contain definitions of data types, function prototypes and C preprocessor commands.
Below is the short example of creating your own header file and using it accordingly.
- Creating myhead.h : Write the below code and then save the file as myhead.h or you can give any name but the extension should be .h indicating its a header file.
// 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);
- Including the .h file in other program : Now as we need to include stdio.h as #include in order to use printf() function. We will also need to include the above header file myhead.h as #include”myhead.h”. The ” ” here are used to instructs the preprocessor to look into the present folder and into the standard folder of all header files if not found in present folder. So, if you wish to use angular brackets instead of ” ” to include your header file you can save it in the standard folder of header files otherwise. If you are using ” ” you need to ensure that the header file you created is saved in the same folder in which you will save the C file using this header file.
- Using the created header file :
// C program to use the above created header file
/*This calls add function written in myhead.h
and therefore no compilation error.*/
// Same for the multiply function in myhead.h
"BYE!See you Soon"
Added value:10 Multiplied value:25 BYE!See you Soon
NOTE : The above code compiles successfully and prints the above output only if you have created the header file and saved it in the same folder the above c file is saved.
The creation of header files are needed generally while writing large C programs so that the modules can share the function definitions, prototypes etc.
- Function and type declarations, global variables, structure declarations and in some cases, inline functions; definitions which need to be centralized in one file.
- In a header file, do not use redundant or other header files; only minimal set of statements.
- Don’t put function definitions in a header. Put these things in a separate .c file.
- Include Declarations for functions and variables whose definitions will be visible to the linker. Also, definitions of data structures and enumerations that are shared among multiple source files.
- In short, Put only what is necessary and keep the header file concised.
This article is merely to give you idea about the creation of header files and using the same but this is not what actually happens when you write a large C program. The creation of header files are needed generally while writing large C programs so that the modules can share the function definitions, prototypes etc.
This article is contributed by Dimpy Varshni. 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 write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- isgraph() C library function
- difftime() C library function
- How to print a number 100 times without using loop and recursion in C?
- _Generic keyword in C
- C Library math.h functions
- C/C++ Preprocessors
- typedef versus #define in C
- Print "Hello World" in C/C++ without using any header file
- exec family of functions in C
- Arrays in C/C++
- C Programming Language Standard
- Use of bool in C
- Memory Layout of C Programs
- How are variables scoped in C - Static or Dynamic?
- Do not use sizeof for array parameters