Es kommt immer wieder vor, dass man Funktionen erstellen möchte, die das Gleiche tun, aber mit verschiedenen Datentypen. In C muss man in solchen Fällen verschiedene Funktionsnamen wählen.

Beispiel

Es werden Funktionen benötigt, welche Zahlen summieren und das Resultat zurückliefern.

1. Zwei Ganzzahlen sollen addiert werden. int Summe(intint);
2. Zwei Fließkommazahlen sollen addiert werden. double Summe( doubledouble);
3. Drei Ganzzahlen sollen addiert werden. int Summe(intintint);
4. Alle Zahlen eines Fließkomma-Arrays sollen addiert werden. double Summe( double[], int);

Jede dieser Funktionen kann Summe heißen. Der Compiler entscheidet beim Aufruf an Hand der Parameter, welche der gleichlautenden Funktionen aufgerufen wird. Diese Parameterliste einer Funktion nennt man auch ihre Signatur.

int main()
{
 int i1=3, i2=5, i3=2, i;
 double f1=12.5, f2=8.1, f;
 double Zahlen[4] = {5.39.13.67.5};
 i = Summe(i1, i2);
 i = Summe(i1, i2, i3);
 f = Summe(f1, f2);
 f = Summe(Zahlen, 4);
 ...
}