I'm splitting up a program into multiple source files for the first time, and I'm wondering what to put in .c files and what to put in .h files. (What does ``.h'' mean, anyway?)
As a general rule, you should put these things in header (.h) files:
macro definitions (preprocessor #defines) structure, union, and enumeration declarations typedef declarations external function declarations (see also question 1.11) global variable declarations
It's especially important to put a declaration or definition in a header file when it will be shared between several other files. (In particular, never put external function prototypes in .c files. See also question 1.7.)
On the other hand, when a definition or declaration should remain private to one source file, it's fine to leave it there.
See also questions 1.7 and 10.7.
References:
K&R2 Sec. 4.5 pp. 81-2
H&S Sec. 9.2.3 p. 267
CT&P Sec. 4.6 pp. 66-7
Read sequentially: prev next up top
This page by Steve Summit // Copyright 1995 // mail feedback