Rückgabewerte in C [] (Rückgabewerte in C), Lektion, Seite 722975
https://www.purl.org/stefan_ram/pub/rueckgabewerte_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Rückgabewerte in C 

Das folgende Programm gibt eine mehr oder weniger zufällig ausgewählte int-Zahl zwischen »0« (einschließlich) und <stdlib.h> »RAND_MAX« (einschließlich) aus.

main.c
#include <stdio.h>  /* printf */
#include <stdlib.h> /* rand */ int main( void )
{ printf
( "%d\n", rand() ); }
stdout
41

Wenn der Aufrufausdruck »rand()« in den Ausdruckrahmen geschrieben wird, so wird dadurch bestimmt, daß der auszugebende Wert bei der Ausführung des Programms von der Auswertung des Ausdrucks »rand()« ermittelt werden soll.

Dieser Wert ergibt sich dann dadurch, daß gegen Ende des Aufrufvorgangs von der Funktion »rand()« ein Wert für diesen Aufrufausdruck festgelegt wird. Wegen dieser Festlegung eines Wertes nennt man diesen Vorgang ja auch die Auswertung  (also die Ermittlung des Wertes) des Ausdrucks »rand()«.

Bei der Auswertung eines Aufrufausdrucks wird die Funktion dieses Ausdrucks aktiviert, wir sagen auch: der Aufruf wird ausgeführt. Das bedeutet nichts anderes als daß diese Funktion nun bestimmt, was der Rechner tut. Daher sagt man auch, daß diese Funktion durch die Ausführung des Aufrufs die Kontrolle (über den Rechner) erhält.

Wird die Kontrolle über den Rechner nun von unserem Hauptprogramm an die Funktion »rand()« übergeben, so kehrt die Kontrolle normalerweise nach einer Weile wieder aus dieser Funktion »rand()« zurück. Die Kontrolle wird also von der aufgerufenen Funktion schließlich (an unseren Ausdruckrahmen) zurückgegeben.

Weil gleichzeitig mit dieser Rückkehr auch der Wert des Ausdrucks geliefert wird, sagt man auch, daß er zusammen mit der Kontrolle von der Operation zurückgegeben  werde, und bezeichnet ihn auch als Rückgabewert. (Der Rückgabewert von »rand()« wird danach von unserem Ausdruckrahmen ausgegeben.) Am Ende der Ausführung einer Funktion steht also die Rückgabe der Kontrolle und eines eventuellen Rückgabewertes an jene Stelle, von der aus diese Funktion aufgerufen wurde.

Übergabe und Rückgabe der Kontrolle zur Laufzeit mit Wertrückgabe
.-------------------------------------.
| Hauptprogramm----. |
| | Übergabe der |
| V Kontrolle |
| .---------------. |
| | Unterprogramm | |
| '---------------' |
| | Rückgabe der |
| | Kontrolle |
|<-----------------' |
| Rueckgabewert |
| |
'-------------------------------------'
»main« und »rand« bei der oben gezeigten Ausführung
.-------------------------------------.
| main-------------. |
| | |
| V |
| .---------------. |
| | rand() | |
| '---------------' |
| | |
| | |
|<-----------------' |
| 41 |
| |
'-------------------------------------'

In dem folgenden Beispiel einer Auswertung des Ausdrucks »rand()« wurde als auszugebender Wert beispielsweise 41 festgelegt, also „zurückgegeben“. Der Rückgabewert ist also 41.

main.c
#include <stdio.h>  /* printf */
#include <stdlib.h> /* rand */ int main( void )
{ printf
( "%d\n", rand() ); }
stdout
41

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722975 stefan_ram:722975 Rückgabewerte in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722975, slrprddef722975, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/rueckgabewerte_c