Developing Programs in C
The development of a C program involves primarily three steps:
- Writing the C program
- Compile the program and
- Execute the program
Software components such as an operating system, a text editor, and the C compiler, assembler, and linker are required to apply these steps. The complete environment for writing, managing, developing, and testing the programs is called Integrated Development Environment (IDE). Some of the IDE’s designed for C are Turbo C, CodeLite, MinGW, Dev-C++.

Writing or Editing: The source program can be written using a text editor or an IDE and saving it with a .c extension.
Pre-processing: A preprocessor directive is a statement (such as #define) that gives the preprocessor specific instructions for editing the source code. Its processes include-files, conditional compilation instructions, and macros. It is invoked as the first part of the compile stage of the building program.
Compilation: It takes the output of the pre-processor, and the source code, and produces the source code of the assembler.
The compiler reviews each program statement; if errors are detected, they are reported to the user.
Assembly: It takes the assembly source code and outputs and assembles the list with offsets. The assembler takes the assembly language commands and converts them into a binary format called object. This file has a .o extension.
Linking: Once the program has been converted to object code, it is ready to be linked. Linker manages the program to get in a final form for execution by linking the functions that belong to the C library and other source programs.
The process of compiling and linking a program is referred to as building. The final linked file, which is in an executable object code format, is stored in a different file on the system, ready for execution.
If all goes well, the program executes the expected task. If the program fails to produce the desired results, it is necessary to go back and re-analyze the program.
Types of errors :
There are three types of errors that may occur:
Compile errors: They come from the compiler and prevent the program from not working.
Linking errors: These are given by the linker or at runtime and end the program.
Runtime errors: These are obtained from the operating system.