C Funktionen ohne Rückgabewert,
Parameter
|
|
Page updated: 19. August 2004
|
Inhalt: Deklaration - Funktionsaufruf - Parameter called
by value - Parameter called by name
Demoprogramme prozedur1.c
- prozedur2.c - prozedur3.c
Deklaration. |
TOP 
|
Unterroutinen werden in C / C++ als Funktionen bezeichnet.
Es gibt mehrere Möglichkeiten, Funktionen zu deklarieren! Da
C/C++ keine Unterscheidung zwischen Prozeduren und Funktionen
macht, muß der Datentyp der Funktion void sein, wenn man eine Unterroutine in C/C++
schreibt. Auch Prozeduren können eine Parameterliste haben -
Parameter werden gesondert behandelt.
- Syntax:
<Leerer Datentyp> ::= void
In C/C++ kann bei einer leeren Parameterliste das
Schlüsselwort void entfallen. Es darf jedoch keinesfalls bei
der Typenangabe der Funktion selbst entfallen:
void
Funktion(void); ist identisch
mit void Funktion();
a) Deklaration der kompletten Funktion vor dem
Hauptprogramm main() bzw. vor der Funktion, die die zu schreibende
Funktion aufruft (auch Funktionen können andere Funktionen
aufrufen). Der Grund: dem Compiler muß die Funktion
«bekannt» sein, wenn er einen Funktionsaufruf
übersetzen soll.
- Syntax:
<Funktions Deklaration> ::=
<Datentyp>
<Funktionsname>( [<formale Parameter
Liste>])
<Anweisungsblock>
b) Deklaration der Prototyp Funktion vor dem Hauptprogramm
main() bzw. vor der Funktion, die die zu schreibende Funktion
aufruft (auch Funktionen können andere Funktionen aufrufen).
Die vollständige Definition einer Funktion mit allen
ihren Befehlen erfolgt nach dem Ende von main() oder der
Funktion, die die definierte Funktion benutzt. Dort muß nach
Wiederholung des Funktionskopfes entsprechend der Prototyp-Zeile
die Folge von Anweisungen in einem Block programmiert werden.
- Syntax:
<Prototyp Funktions Deklaration> ::=
<Datentyp>
<Funktionsname>( [<formale Parameter
Liste>]);
<Funktions Definition> ::=
<Datenyp>
<Funktionsname>( [<formale Parameter
Liste>])
<Anweisungsblock>
Die Regel bei C/C++ "Wird der Datentyp
weggelassen, ist er standardmäßig int" sollte laut ANSI
Standard nicht mehr verwendet werden!
Aktueller
Funktionsaufruf. |
TOP 
|
Unter einem aktuellen Funktionsaufruf versteht man die Verwendung
(Abarbeitung) einer Funktion, zum Beispiel im Hauptprogramm. Die
Funktion wird durch die Angabe Ihres Namens und einer
aktuellen Parameterliste aufgerufen. Die Anzahl der
aktuellen und der formalen Parameter muß in Anzahl und
Datentyp übereinstimmen.
- Syntax:
<Funktions Aufruf> ::=
<Funktionsname>( [<aktuelle Parameter
Liste>]);
Parameter called by
value. |
TOP 
|
In C/C++ besteht die formale Parameterliste aus einer durch
Komma getrennten Angabe von Datentyp und Parameternamen.
- Syntax:
<Parameterliste> ::= <Datentyp>
<Formaler Parametername> [, ...]
Felder (damit auch C-Stil Strings,
jedoch nicht C++ Stil Strings vom Typ string) sind immer Zeiger
(Adressen), können demzufolge nie als Parameter
«called by value» übergeben werden! Sie
müssen «called by name» übergeben werden!
Parameter called by
name. |
TOP 
|
In der Parameterliste muß ein Parameter «called by
name» als Zeiger gekennzeichnet werden:
Dr. J. Kubiak j.kubiak@gmx.net