Header files
Header files serve as the interface between your program
and the libraries supplied by the C compilation system.
Because the functions that perform standard I/O often use the same definitions and declarations,
the system supplies a common interface to the functions in the header file
stdio.h.
If you have definitions or
declarations that you want to make available to
several source files, you can create a header file with any editor,
store it in a convenient directory, and include it in
your program as described in the first part of this chapter.
Header files traditionally are designated by the suffix .h, and are brought into a program at compile time. The preprocessor component of the compiler interprets the #include statement in your program as a directive. The two most commonly used directives are #include and #define. The #include directive is used to call in and process the contents of the named file. The #define directive is used to define the replacement token string for an identifier. For example:
#define NULL 0defines the macro NULL to have the replacement token sequence ``0''. See Chapter 3, ``C language compiler'' for the complete list of preprocessing directives. The most commonly used .h files are listed in Table 2-1, ``Header files'' to illustrate the range of tasks you can perform with header files and library functions. When you use a library function in your program, the manual page tells you which header file, if any, needs to be included. If a header file is mentioned, it should be included before you use any of the associated functions or declarations in your program. Put the #include right at the top of a source file.
Table 2-1 Header files
assert.h assertion checking ctype.h character handling errno.h error conditions float.h floating point limits limits.h other data type limits locale.h program's locale math.h mathematics setjmp.h nonlocal jumps signal.h signal handling stdarg.h variable arguments stddef.h common definitions stdio.h standard input/output stdlib.h general utilities string.h string handling time.h date and time unistd.h system calls