How to have good C code - - Be Disciplined About Namespace Management - Clearly Document Published APIs - Keep Data Types Abstract - Use Polymorphism Judiciously - Prefer Modularisation Over Conditional Compilation - The Best Way to Modularise a Large C Codebase is Don't Have a Large C Codebase! http://www.natpryce.com/articles/000799.html