You will find that this becomes rather unpractical when your project has several hundred files (or more), and ALL of the code has to be recompiled EVERY time you change something.
In a small software project, there's little reason to have different source files, but there is no huge drawback of having more than one source file.
When the source starts to be more than a dozen files, compile time starts to increase. It's also much harder to isolate functional groups of code, which in turn affects the ease with which you can take one lump of code and use it in a different project - which is often a useful thing when working on code.