Einführung in Werte von Aufrufen in C im Rahmen der Lehre der Programmiersprache C. (C Aufruf C Aufrufe C Wert C Werte C Aufrufausdruck C Funktionsaufruf C Funktionsaufrufe), Lektion, Seite 721320
https://www.purl.org/stefan_ram/pub/c_aufrufwert_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

Funktionsaufrufe in C 

Einführendes Beispiel

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

main.c

#include <stdio.h> /* printf */
#include <stdlib.h> /* rand */

int main( void )
{ printf
( "%d\n", rand() ); }

stdout
41

Diese Zufallszahl wird in dem Programm mit einem Aufrufausdruck  »rand()« notiert. Im folgenden werden solche Aufrufausdrücke näher beschrieben.

Wundern Sie sich nicht, wenn die angebliche Zufallszahl bei jeder Ausführung des Programms dieselbe (zum Beispiel 41) ist! Wir werden später behandeln, wie dies verändert werden kann. Da die Zahlen nicht wirklich „zufällig“ sind, werden sie als Pseudozufallszahlen  bezeichnet.

Es kann sein, daß dieses Programm auch dann eine Zahl ausgibt, wenn einige der oben gezeigten include-Direktiven nicht verwendet werden. Das wird aber in diesem Fall nicht mehr von der Programmiersprache garantiert. Deswegen sollten die include-Direktiven immer wie beschrieben verwendet werden, auch wenn das Programm manchmal auch ohne sie eine Zahl ausgibt.

Die Schreibweise von Aufrufen

Ein Ausdruck kann auch mit einem Namen geschrieben werden, dem ein Paar runder Klammern »(« »)« folgt (zwei lexikalischen Einheiten).

Syntax eines Aufrufs »()«
Ausdruck
.------. .-. .-.
--->| Name |--->( ( )-->( ) )-->
'------' '-' '-'

Im Falle dieser hier neu vorgestellten Schreibweise nennen wir die runden Klammern auch Aufrufklammern  und den damit geschrieben Ausdruck einen Aufrufausdruck.

Vergleich mit dem Zirkumfixoperator »(« »)«

Die hier neu vorgestellte Schreibweise von Aufrufen mit Klammern »(« »)« ist nicht mit dem früher eingeführten Zirkumfixoperator »(« »)« zu verwechseln, dessen Klammern wir auch als „Ausdruckklammern“ bezeichnet hatten.

Syntax des schon früher behandelten Zirkumfixoperators »(« »)«
Ausdruck
.-. .----------. .-.
--->( ( )--->| Ausdruck |--->( ) )-->
'-' '----------' '-'

Die hier neu behandelten Aufrufklammern  stehen immer direkt hinter einem Funktionsnamen, wie beispielsweise in »rand()« und bilden mit ihm zusammen einen Ausdruck, während die früher behandelten Ausdruckklammern um einen Ausdruck herum  geschrieben werden und mit diesem einen neuen Ausdruck, wie beispielsweise »(65)«, bilden.

(Wir sagen, daß Klammern leer  seien und direkt  hinter einen Namen stehen, auch wenn die Klammern noch Leerraum enthalten oder von dem voranstehenden Namen durch Leeraum getrennt sind, da Leerraum hier keine Rolle spielt.)

Prioritätsstufen (weiter oben = höhere Priorität)

()

()

-

* …, …/

+ …, … -

Funktionsnamen

Der hier neu eingeführte Aufrufausdruck  beginnt mit einem Namen, allerdings sind nur bestimmte Namen erlaubt. Wir zeigen hier zunächst ein Beispiel mit dem Namen »rand«.

main.c

#include <stdio.h> /* printf */
#include <stdlib.h> /* rand */

int main( void )
{ printf
( "%d\n", rand() ); }

stdout
41

(Eine mögliche Aussprache von “rand ” ist /ˈrænd/.)

Der Name »rand« steht für ein Programm, welches zur Laufzeit bei der Auswertung des Aufrufsausdrucks »rand()« gestartet wird.

Solch ein Programm, das von einem anderen Programm aus aufgerufen wird, wird auch als Unterprogramm  bezeichnet. Insbesondere in C  nennt man solch ein Unterprogramm eine Funktion.

Als Name sind also nur Namen erlaubt, die auch eine Funktion bezeichnen. Solche Namen bezeichnen wir als Funktionsnamen.

Die Schreibweise eines Ausdrucks mit einem Funktionsnamen und einem folgenden Paar runder Klammern nennen wir einen Funktionsaufrufausdruck  oder – kurz – einen Aufrufausdruck.

Die Auswertung von Aufrufausdrücken

Die Funktion »rand« legt, wie gesagt, beim Ablauf des obenstehenden Programms den Wert des Aufrufausdrucks »rand()« fest. Jener Wert wird dann von unserem Aufrufrahmen ausgegeben.

»rand()« bedeutet: „Der Wert dieses Ausdrucks soll von dem Programm »rand« festgelegt werden.“

Anders gesagt: Das Programm »rand« soll gestartet werden; es legt dann den Wert des Ausdrucks »rand()« fest.

Der Wert des Ausdrucks »rand()« wird also von dem Programm »rand« festgelegt.

Der Wert des Aufrufausdrucks »rand()« ist ein int-Wert, der bei jeder seiner Auswertungen (bei jeder Programmausführung) zwischen »0« (einschließlich) und <stdlib.h> »RAND_MAX« (einschließlich) liegt. Wir werden später sehen, daß dieser Wert nicht immer der gleiche sein muß.

Die Bedeutung von Funktionen  der Standardbibliothek ist wie auch die Bedeutung von Operatoren und Literalen durch die C -Norm festgelegt.

Bei der Auswertung eines Funktionsaufrufs, wie »rand()«, wird das Programm »rand« gestartet und ausgeführt. Man sagt aber meistens dazu nicht „das Programm »rand« wird ausgeführt“, sondern „die Funktion »rand« wird aufgerufen“. Programme, die auf die hier gezeigte Weise gestartet und ausgeführt werden können, nennt man also Funktionen. Den Start eines solchen Programms bezeichnet man als Aufruf  der Funktion.

Wir hatten zuvor bereits Operatoren  kennengelernt, auch hinter diesen verbergen sich eigentlich Programme, die bei der Auswertung eines Operatorausdruck gestartet werden.

Einklammern des Funktionsnamens

Ein Funktionsname  ist ein Ausdruck. Daß ein Funktionsname einen Ausdruck darstellt, kann man auch daran erkennen, daß man ihn einklammern kann. Das ist bei Ausdrücken immer möglich, ohne daß sich an ihrer Bedeutung etwas ändert.

Der Funktionsname »rand« ist ein Ausdruck und kann daher auch eingeklammert werden.

main.c

#include <stdio.h> /* printf */
#include <stdlib.h> /* rand */

int main( void )
{ printf
( "%d\n",( rand )() ); }

stdout
41

Da ein Operator Ausdrücke als Operanden hat und seine Anwendung wieder einen Ausdruck darstellt, sind die Aufrufklammern ein Postfix-Operator, welcher seinem Operanden (dem Funktionsnamen) nachgestellt wird.

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 stefanram721320 stefan_ram:721320 C Aufruf C Aufrufe C Wert C Werte C Aufrufausdruck C Funktionsaufruf C Funktionsaufrufe kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , Softwareentwicklung, Software-Entwicklung, Software Entwicklung, Softwareprogrammierung, Software-Programmierung, Software Programmierung, Softwareherstellung, Software-Herstellung, Software Herstellung, Softwareerstellung, Software-Erstellung, Software Erstellung, Softwareengineering, Software-Engineering, Software Engineering, Softwareenginering, Software-Enginering, Software Enginering, Softwaremethodik, Software-Methodik, Software Methodik, Programmiermethodik, Programmier-Methodik, Programmier Methodik, Softwaredidaktik, Software-Didaktik, Software Didaktik, Methodik des Programmierens, Didaktik des Programmierens, Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens, Programmieren, Programmierung, Computer Science, Informatik, Informatik, Informationspädagogik, Informationspaedagogik, Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen, Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still, , source, source code,sourcecode, Programmier sprache C, C, Programm, Programme, C-Programm C Sprache C Programmiersprache C C-Programme, Programmieren in C, Die Programmiersprache C, Die Programmier-Sprache C, C-Programmierung, Die Programmier Sprache C, ANSI-C, Standard C, ISO-C, International Standard ISO/IEC 9899:1999 (E), ANSI X3.159-1989, C90, C99, ANSI/ISO-C, ISO/IEC-C, IEC-C, ISO/IEC 9899:1999 (E), Standard C programmieren, Standart C programmieren, INCITS/ISO/IEC 9899-1999, Programming Languages - C (formerly ANSI/ISO/IEC 9899-1999) Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd721320, slrprddef721320, 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/c_aufrufwert_de