Learning C can be a pain because virtually every resource tries to dumb it down. You then think you know the language, crack open a program, and are almost instantly lost. Here I'm attempting to show techniques actually used in real programs.
Headers can get big. The bigger they are the more you will want to separate the code portion from the method declarations. You can do this is C by putting the code in a file with a C extension and the declarations in a header file with the normal header extension.