cdesign-patternsprinciples

Design Principles, Best Practices and Design Patterns for C (or Procedural Programming in general)?


Are there any known design principles, best-practices and design patterns that one can follow while designing a C project? Or useful design principles for procedural (imperative) programming in general?

(I'm child of the 'object-oriented generation' and have to design a large C project for the first time)


Solution

  • Information hiding - as espoused by Parnas (Software Fundamentals).

    Careful management of headers and visibility: