All of the answers to this question are so far good, but I would like to add something else here.
Take all of the recommendations to the code style with a grain of salt. Some of them came from the higher level languages and do not apply to C or assembly.
When I was just starting out with C, I tried to comply with all of the recommendations I took from OOP languages only to find out that they do not really work in C. If you take for example the Robert Martin book, he states there that a function should ideally contain 3-5 lines of code. Isn't this preposterous? Imagine writing a real world app that does something useful with this recommendations in mind. It's going to become a real mess really soon.