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:
Das Funktionskonzept in C schließt beide Formen ein:
Bezüglich des Typs des Ergebnisses existieren Einschränkungen:
io parameter_1 : datentyp_1; ...; io parameter_n : datentyp_nio 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 : datentypan Stelle von
io parameter_1 : datentyp; ...; io parameter_m : datentypBeispiel:
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