Der Präprozessor ist der Teil eines Compilers (im weiten Sinne, d.h. inklusive Präprozessor und Linker), der zuerst die Quelltexte bearbeitet. Dabei sucht er nach speziellen Anweisungen, die mit einem Doppelkreuz gekennzeichnet sind (#). Diese Befehle bringen ihn dazu, den Quelltext abzuändern, bevor er in den eigentlichen Compiler kommt. Dabei hat er im wesentlichen folgende Aufgaben:
Teile des Quelltextes während des Compilierens selektieren (#ifdef / #ifndef)
Die zugehörigen Befehle in den Klammern werden später im Kapitel erläutert werden. Wichtig bei allen Präprozessorbefehlen ist: sie führen textuelle Änderungen am Quellcode aus. Das kann teilweise zu Problemen führen, vor allem bei der Definition von Makros, doch dazu später mehr.
Der Präprozessor ist i.d.R. in den Compiler integriert, häufig erfolgt die Verarbeitung des Quellcodes simultan zum compilieren, da sonst große Zwischendateien entstehen würden. Falls nur dieser erste Schritt vollzogen werden soll, kann man daher zumeist den Compilern einen Parameter beim Aufruf mitgeben, der den eigentlichen Compiler abschaltet und nur den Präprozessor laufen läßt.
Präprozessorbefehle werden häufig auch Compilerdirektiven genannt.