When I was starting .c programming my natural inclination was to write one "main" .c file, then add/organize extra features by #include-ing the .h files with function declarations, typedefs, variables etc. This workflow is very simple - no function prototypes, one build file, etc. This workflow is intuitive - #include is just like copy-pasting code! And it does get the job done.
However, when I look at the file structure of professional projects (i.e. on Github), I see that the general practice is to split the program into multiple .c files (complete with their own #includes, function prototypes, build files etc), then link them together. Why is this workflow more widespread even though it does involve a lot of extra work relative to "one .c file to rule them all"?
I researched on and tried both styles of project file organization, but still ended up using the "one .c , multiple .h" approach. I'd like to know what are the pros and cons of both.