Programmiersprache C/C++

7.x. Funktionen

Eine Funktion besitzt folgenden prinzipiellen Aufbau:
  datentyp name ( parameterliste )           Funktionskopf
  { 
    Block                                    Funktionskörper
  }
Im Gegensatz zu vielen anderen Programmiersprachen wie Pascal, Fortran wird in C nicht deutlich zwischen eigentlichen Prozeduren (Prozeduren) und Funktionsprozeduren (Funktionen) unterschieden: Der Aufruf von Funktionsprozedur und eigentlicher Prozedur unterscheidet sich grundsätzlich.

Das Funktionskonzept in C schließt beide Formen ein:

datentyp legt den Typ des Wertes fest, den die Funktion nach ihrem Aufruf zurückliefert.
Der Rückgabewert wird durch eine Wertzuweisung an name festgelegt.
( parameterliste ) darf in Pascal, im Gegensatz zu einigen anderen Programmiersprachen, weggelassen werden, d.h. es ist möglich, parameterlose Funktionen zu deklarieren.

Bezüglich des Typs des Ergebnisses existieren Einschränkungen:

Die Parameterliste ist wie folgt zu notieren:
  io parameter_1 : datentyp_1; ...; io parameter_n : datentyp_n
io legt die Art der Parameterübergabe fest und kann für folgende Angaben stehen:
         value parameter         Eingangangsgröße
  VAR    variable parameter      Ein- und Ausgangsgröße
  CONST  constant parameter      Eingangangsgröße
Die dritte Variante (CONST) ist nur in einigen Pascal-Systemen möglich (z.B. Delphi).

Funktionen sollten nach Möglichkeit nur eine Ausgangsgröße besitzen: den Funktionswert.
Bei der Nachnutzung von Funktionen mit mehreren Ausgangsgrößen besteht die Gefahr, daß vom Nutzer der Funktion übersehen wird, daß sich die Werte von Parametern verändern.

Besitzen mehrere Parameter den gleichen Datentyp und stimmen in der Art der Parameterübergabe überein, so kann die Deklaration folgendermaßen verkürzt werden:

  io parameter_1, ..., parameter_m : datentyp
an Stelle von
  io parameter_1 : datentyp; ...; io parameter_m : datentyp
Beispiel:
FUNCTION add(x: INTEGER; y: INTEGER) : INTEGER;
FUNCTION add(x, y: INTEGER) : INTEGER;
Beide Anweisungen erreichen die gleiche Wirkung.

Beispiel:

FUNCTION pi : REAL;       { in Turbo Pascal vordefiniert }
parameterlose Funktion


Zurück zum Menü
Zurück zur vorigen Seite Weiter zur nächsten Seite

P. Böhme, 05.12.1995