Hints for writing maintainable code
Subsections
General code layout
Length of functions
Preventing double inclusion
Static declarations
Initializing variables
Allocating and deallocating complex structures
Keeping up with work in progress
Choosing good variable and function names