C-Programmierung

Einsatz von C-Funktionen als Schnittstelle

Funktionshierarchie | | Mathematische Funktionen

Der Parametersatz einer Funktion heisst Funktionskopf oder Signatur (signature). Die aktuellen Parameterwerte der Signatur definieren eindeutig das Verhalten der Funktion und damit auch deren jeweiligen Rückgabewert. D.h. für jeden Aufruf mit denselben Parameterwerten liefert die Funktion denselben Rückgabewert (Prinzip der funktionalen Programmierung).

Um eine bestimmte Funktion verwenden zu können, muss man also lediglich die Bedeutung der Parameter kennen, jedoch nicht notwendigerweise die Details der Implementierung.

Die Signatur einer C Funktion stellt daher eine abstrakte Schnittstelle zwischen der Verwendungsweise und der Implementierung einer Funktion bzw. eines Algorithmus’ dar.

Austausch der gcd-Funktion durch eine schnellere Implementierung (Euklidischer Algoritmus) mit derselben Signatur:

/* greatest common divisor */
unsigned int gcd(unsigned int a, unsigned int b)
{
   unsigned int c;

   while (b>0) {
      c=b;
      b=a%b;
      a=c;
   }

   return(a);
}

Die Implementierung kann sich also ändern und sukzessive verbessert werden, ohne dass sich die Schnittstelle ändert und dies Auswirkungen auf die Verwendungsweise der Funktion in anderen Programmteilen hätte wie z.B. auf die Funktion lcm.

Funktionshierarchie | | Mathematische Funktionen

Options: