These files have your code translated to machine language, something one step above machine language called assembly , or some other format close to that found in a real executable. The difference between object files and the end result is that the object files also contain information on the variables and functions in your program. All that matters is that a linker combines your object files, and perhaps some stored libraries of object files with code that you will often want to re-use found in .a or .lib files, and links them together into a final program. I'm sure at this point you're itching to get started. Chances are you may not have a compiler and the other tools needed to code in C, so here is a list of links to where you can download various free compilers.
Ports are available for most popular platforms.
You don't have to worry about any of the complexities of more featureful operating systems and can concentrate on the basics. For those of you who are interested in games, I would recommend using Allegro , a great all-purpose game programming library, to be able to create real computer games without needing a lot of experience to do so. Allegro has been ported to Windows, Linux, and others these days, so you can use it with other compilers as well. Being able to get immediate results like this is an excellent motivator to learn all about programming, or at least I have found so in my experience. The most popular Windows gcc port, it also features libraries to let you use standard UNIX functions in Windows programs.