Funktionen Flashcards
Funktionen - Definition
[Speicherklasse] Rückgabetyp Funktionsbezeichner(Parameter) { Anweisungen }
Was ist der Rückgabetyp einer Funktion
Hier wird der Rückgabewert der Funktion festgelegt. Wenn die Funktion keinen Rückgabewert haben soll ist der Rückgabetyp void
Was ist der Funktionsbezeichner einer Funktion?
Der Bezeichner der Funktion, mit der die Funktion aufgerufen werden kann.
Welche Regeln gelten für die Funktionsbezeichner?
- Die gleichen wie für Bezeichner
Was sind Parameter einer Funktion?
- Parameter einer Funktion sind optional
- Sie werden durch einen Datentyp und dann Namen spezifiziert
- Sie werden durch ein Komma getrennt
- Wenn keine Paramter verwendet werden, können die Klammern frei gelassen werden oder
void
zwischen sie schreiben
Was sind Anweisungsblocke in der Funktion?
In ihm werden die Anweisungen ausgeführt.
Funktionsaufruf - Definition
Funktionsbezeichner(Parameter);
Was gilt für die Position einer Funktiondefinition im Quelltext
Sie muss vor ihrem ersten Aufruf im Quelltext deklariert sein.
Wie kann man umgehen, dass die Funktion vor ihrem Aufruf definiert werden muss.
Mit einer Vorwärtsdeklaration
Was macht eine Vorwärtsdeklaration und wie sieht sie aus?
[Spezifizierer] Rückgabetyp Funktionsbezeichner(Parameter);
Hier wird noch nicht definiert was die Funktion macht, sondern es wird nur gesagt das es eine Funktion mit diesem Bezeichner und diesen Parametern gibt, damit der Compiler die Funktion kennt und sie nach ihrem ersten Aufruf Definiert werden kann oder erst Zeitlich später.
Was ist eine lokale Variable?
Diese Variable existert nur in ihren Anweisungsblock. Sie ist also von außerhalb nicht sichtbar und wird nach verlassen des Anweisungsblocks zerstört.
Was gilt für die Variablen und Parameter innerhalb einer Funktion in hinsicht auf Sichtbarkeit und Gültigkeitsbereich?
Sie sind lokale Variablen
Kann man eine lokale Variable mit gleichem Bezeichner wie eine weniger lokale Variable definieren?
Ja
Auf welche Variable wird zugegriffen, wenn es zwei Variablen mit gleichem Bezeichner gibt?
Auf die lokalere
Kann man eine Variablen mit gleichen Bezeichner bei gleicher lokalität nochmal definieren/deklarieren?
Nein
Was sind globale Variablen
Das sind Variablen die außerhalb von einer Funktion/Anweisungsblock definiert wurde. Sie heißen global weil sie von jeder Stelle Im Quelltext nach ihrer Deklaration aus erreichbar sind.
Was sind statische Variablen
Diese Variablen behalten ihren Wert, auch nach verlassen ihres Gültigkeitsbereiches, so das wenn dieser Gültigkeitsbereich erneut betreten wird sie immer noch ihren alten Wert gespeichert haben.
Was gilt für die deklaration von statischen Variablen?
Ihnen sollte direkt bei ihrer Deklaration ein Wert zugewiesen werden, das ist aber in der Theorie nicht verboten.
Wo werden statische Variablen im gegensatz zu anderen lokalen Variablen gespeichert?
Im Datensegment und nicht im Stacksegment.
Welche Speicherklassen/Typ-Qualifizierer gibt es für Variablen?
- auto
- extern
- register
- static
- volatile
- const
Was macht das Schlüsselwort auto
bei einer Variable?
Die Variable wird automatisch angelegt und entfernt. Also genau wie bei lokalen Variablen. Daher ist das Schlüsselwort überflüssig.