With scripting languages (or near-scripting languages) such as shell, Tcl, Perl, Python and PHP, the developer just edits a file of program code, and tests it - the tools that he uses roll the translation of his source into something that can be run without him having to make further inputs. C is somewhat different .... to here's how to convert a C program from source to executable.
1. Enter your source code (a file extension .c is common).
2. Compile into an object file (extension .o or .obj). This is a binary file that contains machine code for the machine that you'll be running on, but it's not yet a complete program - it's a program component. In effect, your compiling has turned a raw potato into a roasted one, but it's still not a complete meal.
3. Link / Load / Taskbuild your .o or .obj files; that joins them together into a single conglomorate executable file, and brings in standard library files too, so that the file as a whole can be run. You have now added your Roast Beef, Yorkshire Pudding, and brussel sprouts and made up a complete course.
* The COMPILER will initally run the C pre-processor which will act on lines starting with a # character, allowing for other files to be included, constants defined, and selective debug code / system dependent code to be included as appropriate.
* The whole process of one or more compiles followed by a link may be defined in a makefile. The Makefile defines the commands necessary for each step of the process, and also lets you define which file depends on whihch other file - the net effect of this is to enable the compiler to skip over files that haven't been changed since you last did a compile by looking at the timestamp on the .c file in relation to the timestamp on the .o; very clever - I remember back to "pre-make" days and running compiles and loads of a big CAD system I wrote that took nearly an hour to process! (written 2006-10-06)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesC201 - C and C based languages - C Language Fundamentals 
C - why is slow to write and debug) but fast to run? - (2015-11-01) 
Preprocessor directives in C and C++ - what they mean - (2015-10-27) 
Learning to program - variables and constants - (2014-11-22) 
BODMAS - the order a computer evaluates arithmetic expressions - (2012-11-09) 
Integer types, and integer overflows, in C - (2012-01-25) 
Do I need to initialise variables - programming in C, C++, Perl, PHP, Python, Ruby or Java. - (2011-05-05) 
Your program - you just provide the filling in the sandwich - (2011-04-08) 
Learning to write good programs in C and C++ - separating out repeated code - (2011-01-04) 
Staring a C course with Hello World - why? - (2010-06-30) 
What does const mean? C and C++ - (2010-01-15) 
Variables and pointers and references - C and C++ - (2009-01-23) 
Compiling C programs with gcc - an overview - (2008-06-10)C202 - C and C based languages - A first practical program 
Remember to ask the question before you listen for the answer - (2016-01-26) 
Learning to program sample program - past its prime, but still useful - (2014-12-02) 
Defining, declaring and initialising variables in C - (2012-01-24) 
C - a first program that does something useful for you - (2011-04-09) 
New year, new C Course - (2011-01-05) 
C course inspires new teaching examples - (2010-01-16)
Some other Articles
A pattern in changeWell House Manor Hotel, Melksham, WiltshireOpenOpening approaches!Turning C from source to a running programHTML tables - telling whats wrong from the displaySigns of LeekWhy do we still need C?Drive timeAge discrimination law