Pardon me if this sounds a question that has been asked many times but I assure you this is a little different.
I use Codeblocks for C programming and lately I have
Providing function declarations in a header will at least protect you from stupid errors like passing arguments of incompatible types.
Moreover, headers are used not only for function declarations. What's about struct/enum definitions, global typedefs, macros, inline functions, etc?
Finally, header can be considered as an external API for your module. One can briefly take a look at a header to understand how to use it without dealing with an implementation (which sometimes is not available at all).