C Flow Control
Execution Flow of C Program
C Language Program goes through a couple of execution processes before running, which converts the source code into machine understandable binary code. In this tutorial, we will discuss this process in detail.
Source code written in C Language is used as an input for preprocessor. Preprocessor converts all the directives into their respective values. It generates an expanded source code by attaching all the header files with the source code.
Expanded Source Code is sent to compiler. Compiler reads the expanded source code and converts it to assembly level code after compiling the whole program.
Output of Compiler (Assembly Code) is sent to assembler. In this stage, assembler converts the assembly code into Object Code, which is quite similar to machine code.
Linker takes the object code, generated by assember and link it with other binaries. These binaries helps to execute the program on machine. After linking,Linker generates the final Machine code which is machine understandable and executed directly on target machine.
Loader is responsible for loading the binary code into system's primary memory (RAM) and its execution. After completing the execution, the output is shown on console.