|
|
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, for example, very often use the same definitions and declarations, the system supplies a common interface to the functions in the header file <stdio.h>. By the same token, 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 section.
Header files traditionally are designated by the suffix .h, and are brought into a program at compile time. The preprocessor component of the compiler does this because it interprets the #include statement in your program as a directive. The two most commonly used directives are #include and #define. As we have seen, 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 ``C and C++ compilation system'' for the complete list of preprocessing directives.
When you use a library function in your program, the manual page will tell 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. It's generally best to put the #include right at the top of a source file. These are some frequently used 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 |