title: Software design practice in C
body: <p>For OOP languages, there are many books describing how to design software, and design patterns are mainly for OOP languages. </p>
  
  <p>I am wondering whether there are any books/good articles teaching how to use C in a big project, like it is a good practice to use static functions when this function is only used in a single file.</p>