If you put all of your includes in one place you would only have to define what you need once, rather than in all your source files.
That's the purpose of .h
files, so you can define what you need once and include it everywhere. Some projects even have an everything.h
header that includes every individual .h
file. So, your pro can be achieved with separate .c
files as well.
This means that I don't have to write a header file for each function I create [...]
You're not supposed to write one header file for every function anyway. You're supposed to have one header file for a set of related functions. So your con is not valid either.