header file is a file with extension .h
which contains C function declarations and macro definitions to be
shared between several source files.
There are two types of header
files: the files that the programmer writes and the files that comes
with your compiler.
You request to use a header file in your program
by including it with the C preprocessing directive #include,
like you have seen inclusion of stdio.h header file, which
comes along with your compiler.
Including a header file is equal to copying the content of the
header file but we do not do it because it will be error-prone and it
is not a good idea to copy the content of a header file in the source
files, especially if we have multiple source files in a program.
A simple practice in C is that we keep all the constants,
macros, system wide global variables, and function prototypes in the
header files and include that header file wherever it is required.
Include Syntax
Both the user and the system header files are
included using the preprocessing directive #include. It has
the following two forms −
#include <file>
This form is used for system header files. It
searches for a file named 'file' in a standard list of system
directories. You can prepend directories to this list with the -I
option while compiling your source code.
#include "file"
This form is used for header files of your own
program. It searches for a file named 'file' in the directory
containing the current file. You can prepend directories to this list
with the -I option while compiling your source code.
Once-Only Headers
If a header file happens to be included twice, the compiler will
process its contents twice and it will result in an error. The
standard way to prevent this is to enclose the entire real contents
of the file in a conditional, like this −
#ifndef HEADER_FILE
#define HEADER_FILE
the entire header file file
#endif
This construct is commonly known as a wrapper #ifndef. When
the header is included again, the conditional will be false, because
HEADER_FILE is defined. The preprocessor will skip over the entire
contents of the file, and the compiler will not see it twice.
Comments
Post a Comment