Im splitting up a program into multiple source files for the first time, and Im 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. Don’t repeat a declaration or macro definition at the top of two or more source files; do put it in a header file and #include it wherever needed. The reason is not just to save typing: you want to set things up so that whenever a declaration or definition changes, you only have to change it in one place, with the update propagated to all source files consistently. (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 .c file, it’s fine to leave it there. (Private file-scope functio
Related Questions
- Im splitting up a program into multiple source files for the first time, and Im wondering what to put in .c files and what to put in .h files. (What does ``.h\ mean, anyway?
- How can I put revision history information in the source files each time I check in a file?
- Does the program redownload log files each time when using FTP or HTTP log location?