8. Die Programmiersprache C2
8.8.5 Typenprüfung
Der C2-Compiler führt zu jedem Aufruf einer Funktion eine Prüfung durch, ob neben der
Anzahl der Parameter auch deren jeweiliger Typ der Funktionsdefinition entspricht. Ein
Bezeichner einer string-Variablen kann z.B. nicht übergeben werden, wenn laut
Definition an dieser Stelle ein numerischer Ausdruck erwartet wird.
Es gelten folgende Typkompatibilitätsregeln:
Typ des formalen Parameters
im Funktionskopf
byte, int, long, float beliebiger numerischer Ausdruck
byte[]
int[]
long[]
float[]
string
string[]
zusammengesetzter Typ, Bezeichner einer MyType-Variable,
z.B. MyType
MyType[]
*) Referenzen auf konstante Arrays dürfen nicht an Funktionen übergeben werden.
8.8.6 Rekursion
Eine Funktion kann sich theoretisch auch selbst aufrufen. Das wird als Rekursion bezeichnet.
Einige mathematische Näherungen beruhen auf rekursiven Algorithmen mit Abbruch-
schranken.
C2 verbietet rekursive Funktionsaufrufe nicht ausdrücklich, sie sollten jedoch vermieden
werden.
zulässige aktuelle Parameter beim Funktionsaufruf
Bezeichner einer byte-Arrayvariable*),
Bezeichner einer string-Variable,
indizierter Bezeichner einer string-Arrayvariable
Bezeichner einer int-Arrayvariable*)
Bezeichner einer long-Arrayvariable*)
Bezeichner einer float-Arrayvariable*)
unbenannte string-Konstante,
Bezeichner einer string-Variable,
indizierter Bezeichner einer string-Arrayvariable,
Bezeichner einer string-Konstante,
indizierter Bezeichner einer string-Arraykonstante
Bezeichner einer string-Arrayvariable*)
indizierter Bezeichner einer MyType -Arrayvariable
Bezeichner einer MyType-Arrayvariable *)
69