In einem headerfile stehen alle global gültigen Deklarationen, die zu dem zugehören Sourcefile gehören. Ein anderer Programmteil kann dieses headerfile einbinden und dem Compiler somit alle Informationen geben, die er braucht, um die in dem entsprechenden Sourcefile implementierten Funktionen zu nutzen - bzw. genauer: die Funktionen, die nutzbar sein sollen, es kann durchaus Funktionen geben, die nur für interne Zwecke vorhanden sind und die nicht von außen genutzt werden können.
headerfiles definieren somit eine Schnittstelle zu dem zugehörigen Funktionen, Variablen und Konstanten des Sourcefiles. Abgesehen von dem arbeitstechnischem Vorteil, daß die Kenntnis des headerfiles ausreicht, um ein Sourcefile zu nutzen, ist es auch möglich, die Sourcefiles schon vorher zu compilieren, und nur die compilierten Versionen zu nutzen. Das spart zum einen mehrfaches Compilieren, zum anderen ermöglicht es, die Sourcefiles geheim zu halten, was bei kommerziellen Programmen von Interesse ist. Auch lassen sich die Sourcefiles in compilierter Version zu Bibliotheken bündeln.