Imaginons que tu veuilles utiliser printf(), si tu n´inclus pas le header, le compilateur va se demander comment doit fonctionner printf, et va donc produire une erreur parcequ´il ne sait pas...
En langage C, le préprocesseur est un utilitaire spécial qui permet de définir des sympoles aux constantes. Il est lancé avant le compilateur et a pour but de remplacer tout nom de macro par la macro correspondante, c´est la substitution de macros
Il permet aussi d´inclure les headers, d´effectuer des compilations conditionnelles et de s´occuper de certaines parties du programme