The C preprocessor is a tool which runs automatically when the compiler cc is run. It is the preprocessor which allows constants to be named using the #define notation. The preprocessor provides several other useful facilities which will be described here. It is particularly useful for selecting machine dependent pieces of code for different types of computer, thus allowing a single program to be compiled and run on several different computers.
The C preprocessor isn't restricted to use with C programs, and programmers who use other languages may also find it useful, however it is tuned to recognise features of the C language like comments and strings, so its use may be slightly restricted in other circumstances.
The preprocessor is called cpp, however it is called automatically by cc so you will not need to call it directly while programming in C.