Funktionen Flashcards

(54 cards)

1
Q

Was ist die Syntax von einer Funktion

A
[Spezifizierer] Rückgabetyp Funktionsname(Paramter) {
   /* Anweisungsblock mit Anweisungen */
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was gibt der Rückgabetyp einer Funktion an?

A

Von welchem Datentyp der Wert ist, den die Funktion zurückgibt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie werden Paramter in der Funktionsdeklaration geschrieben?

A

Datentyp gefolgt von Namen, meherer Parameter werden durch Kommata getrennt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie viele Parameter muss eine Funktion mindestens besitzen?

A

Keine, Parameter sind Optional.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist der Rückgabetyp & Spezifizerer der folgenden Funktion:

static int hello() {
   return printf("hello");
}
A

int & static

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welches schlüsselwort kann als Datentyp verwenden, wenn ich eine Funktion habe welche keine Wert zurückgeben soll, also keinen Rückgabewert hat, der einen Datentyp hat?

A

void

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was kann ich für die Parameter einer Funktion schreiben, wenn diese gar keine Parameter haben soll?

A

die Klammern einfach leer lassen oder das schlüsselwort void hineinschreiben

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie kann ich folgende Funktion aufrufen:
~~~
void hilfe(void) {
printf(“Ich bin die Hilfsfunktion\n”);
}
~~~

A
int main(void) {
   hilfe();
   return 0;
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche Funktion wird in C immer als erstes ausgeführt und muss auch in jedem Lauffähigen Programm enthalten sein?

A

die main()-Funktion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wo muss die Funktionsdeklaration relativ zu ihrem aufruf stehen.

A

Davor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie kann ich eine Funktion im Quellcode erst nach ihrem aufruf definieren?

A

Mit einer Vorwärtsdeklaration

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist eine Vorwärtsdeklaration

A

Die Signatur von einer Funktion wird vorab deklariert, so das die eigentliche Definition der Funktion erst später im Quelltext erfolgen muss.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist die Syntax einer Vorwärtsdeklaration?

A
[Spezifizierer] Rückgabetyp Funktionsname(Paramter);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist die Vorwärtsddeklaration folgender Funktion:
~~~
static int increment (int a, int b) {
// Anweisungen
}
~~~

A
static int increment (int a, int b);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist eine lokale Variable in C?

A

Eine lokale Variable ist eine Variable, die innerhalb einer Funktion oder eines Blocks (z. B. Schleife oder if-Anweisung) deklariert wird und nur innerhalb dieses Bereichs gültig ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Sind Parameter in C lokale Variablen?

A

ja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Kann ich zwei Variablen mit gleichem Bezeichner im gleichen Anweisungsblock deklarieren?

A

Nein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Kann ich zwei Variablen mit gleichem Bezeichner in unterschiedlichen Anweisungsblocks deklarieren?

A

Ja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Welche Variable ist gültig wenn ich zwei gleichnamige habe?

A

die lokalste

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Sind alle Variablen die in einem Anweisungsblock definert werden lokal?

A

ja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Was sind Globale Variablen?

A

Variablen die Auserhalb eines Anweisungsblocks definiert sind.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Werden lokale Variablen in Stack oder im Heap gespeichert?

22
Q

Sind globale Variablen von überal aus nach ihrere deklaration aus erreichbar?

23
Q

Wo werden globale Variablen gespeichert?

24
Wenn ich einer lokalen Variable keinen Wert zuweise, welchen Wert hat sie dann standartmäßig?
Einen Zufälligen Wert, genau gesagt den Wert der vorher an der Variablenposition stand.
25
Wenn ich einer gloablen Variable keinen Wert zuweise, welchen Wert hat sie dann standartmäßig?
0
26
wie deklariere ich einen statische variable var von datentyp dat
``` static dat var; ```
27
Was macht das Schlüsselwort static be einer Variable??
Wenn eine Variable als static definiert ist dann verliert sie nach Beenden ihres Gültigkeitsbereichs nicht ihren Wert.
28
Wird eine static variable in Heap oder im Stack gespeichert?
In Heap
29
Müssen statische Variablen schon bei ihrer Deklaration initialisert werden?
Ja
30
Was macht das Schlüsselwort extern bei einer Variable?
Befindet sich das Schlüsselwort extern vor einer Variable so befindet sich die Variable in einer anderen Datei.
31
Was macht das Schlüsselwort register bei einer Variable?
Gibt dem Compiler an die Variable so lange wie möglich im Register zu halten. Hat aber heutzutage keinen einfluss mehr.
32
Was macht das Schlüsselwort volatile bei einer Variable?
Vor jedem Zugriff muss der Wert neu aus dem Hauptregister gelesen werden und nach jedem Zugriff direkt zurückgeschreiben werden.
33
Was macht das Schlüsselwort const bei einer Variable?
Variable die nach ihrer Definition nicht mehr geändert werden kann.
34
Was macht der Speicherklassenspezifizierer extern bei einer Funktion
Funktion kann sich auch in einer anderen Quelldatei befinden. Ist aber unnötig da alle Funktionen ohne Speicherklassenspezifierer automatisch extern sind.
35
Was für einen Speicherklassenspezifierer hat eine Funktion wenn keiner explizit angegeben wurde?
extern
36
Was macht der Speicherklassenspezifiere static bei einer Funktion?
Funktion kann nur innerhalb der Datei genutzt werden
37
Was macht der Speicherklassenspezifierer volatile bei einer Funktion?
Er verhindert das die Funktion optimiert wird und die Funktion (Sprungadresse) immer wieder neu aus dem Hauptspeicher gelesen werden muss.
38
Wenn ich einen Parameter als Call-by-Value Wert übergebe. Was erhält dann die Funktion?
Eine Kopie des eigentlichen Werts.
39
Wenn ich einen Parameter als Call-by-Value Wert übergebe und den Wert in der eignetlichen Funktion ändere. Ist der Wert dann auch nach der Funktion geändert?
Nein, weil man nur auf einer Kopie gearbeitet hat?
40
Wenn ich einen Parameters als Call-by-Reference übergebe, was erhält dann die Funktion?
Die Speicheradresse des Wertes der übergeben werden soll.
41
Wie viele Funktionen in einem Programm müssen mindestens den namen `main()` haben laut ANSI-C standart?
1
42
Welchen Rückgabetyp muss die Main-Funktion haben?
int
43
Welche beiden signaturen sind für die Main-Funktion erlaubt?
``` int main() { return 0; } int main(int argc, char *argv[]) { return 0; } ```
44
Was sagt der Rückgabewert der main-Funktion aus?
Ob das Programm ordnungsgemäß beendet wurde
45
Welcher Rückgabewert der Main-Funktion sagt normaler weise aus, das das Programm erfolgreich durchgelaufen ist?
0
46
Welcher Rückgabewert der Main-Funktion sagt normaler weise aus, dass das Programm wegen eines Fehlers beendet wurde?
1
47
Wie sieht die Routine von Start bis ende eines Programms aus?
48
In welcher Headerdatei sind die Makros `EXIT_SUCCESS` & `EXIT_FAILURE`
49
Was ist eine Rekursive Funktion?
Eine Funktion die sich selbst wieder aufruft.
50
Was macht das Schlüsselwort inline bei einer Funktion?
Der Code einer Inline-Funktion wird direkt an der Stelle ihres Aufrufs vom Compiler eingefügt anstatt bei erreichen ihres aufrufes in eine neue Funktion zu springen.
51
Was kann der Compiler machen wenn eine inline Funktion zu groß wird?
Der Compiler kann die inline Anweisung ignorieren und sie als normale Funktion behandeln
52
Welcher Speicherklassenspezifizier muss normalerweise vor einer inline Funktion stehen?
static
53
Wie kann man eine Inline-Funktion fürh die komplette Übersetzungseinheit zur Verfügung stellen?
In einer separaten Headerdatei Funktionssignatur mit Speicherklassenspezifizierer extern ohne inline schreiben. Die Headerdatei dann in das eigentlich programm Einbinden und dort die inline-Funktion definieren ohne static.