Ein Funktionskopf hat immer dieses Schema:
Rückgabetyp Funktionsname (evtl. Parameter)
Die evtl in der Klammer stehenden Parameter bestehen dabei aus Parametertyp und Parametername. Es können beliebig viele (auch keine) Parameter angegeben werden. Die einzelnen Parameter werden durch kommata voneinander getrennt, Hat die Funktion keine Parameter, kann man das in C durch den Pseudotypnamen void (engl. ungültig) darstellen. Liefert die Funktion keinen Wert zurück, wird auch der Rückgabetyp mit void bezeichnet.
Trifft ein C-Programm während der Berechnung eines Ausdrucks auf den Namen einer Funktion gefolgt von einem Klammerpaar (), werden zunächst, so vorhanden, die Ausdrücke in der Klammer ausgewertet. Mit den so ermittelten Werten, den Funktions argumenten werden die Parameter der Funktion initialisiert, und dann der Funktionsblock ausgeführt ( Funktionsaufruf). Liefert die Funktion ein Ergebnis zurück, wird dieses innerhalb des ursprünglichen Ausdrucks als Ergebnis des durch den Funktionsaufruf gekennzeichneten Unterausdrucks eingesetzt.