Präprozessor-Direktiven Flashcards

1
Q

Wie sieht das Compilieren einer Datei aus?

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

Wann kommt der Präprozessor zum einsatz?

A

Bevor der Compiler den Quelltext verarbeitet

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

Was steht bei jeder Präprozessordirektive am Anfang der Zeile?

A

#

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

Wie viele Präprozessordirektiven dürfen maximal in einer Zeile stehen?

A

1

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

Was macht der Präprozessor, was nicht vom Programmierer gesteuert werden kann?

A
  • Stringliterale werden zusammengefasst (konkateniert).
  • Zeilenumbrüche mit einem Backslash am Anfang werden entfernt.
  • Kommentare werden entfernt und durch Leerzeichen ersetzt.
  • Whitespace-Zeichen zwischen Tokens werden gelöscht.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was macht der Präprozessor, was vom Programmierer gesteuert werden kann?

A
  • Header- und Quelldateien in den Quelltext kopieren (#include)
  • symbolische Konstanten einbinden (#define)
  • bedinget Kompilierung (#ifdef, #elseif, …)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie nennt man die Anweisungen die vom Präprozessor verarbeitet werden und vom Programmierer gesteuert werden können?

A

Präprozessor-Direktiven

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

Was macht die #include Direktive

A

Sie kopoert andere bennante (Include-)Dateiein in das Programm.

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

include Direktive - Definition für Header befindet sich im Include-Verzeichnes des Compilers

A
#include<header>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

include Direktive - Definition für Header befindet sich im Programmverzeichernis

A

#include"header"

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

Wo wird gesucht wenn bei #include"header" nicht gefunden wurde?

A

So als ob dort stehen würde #include<header>

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

Was gilt für die Schreibweise der include-Defintion bei älteren Compilern?

A

Es darf kein Leerzeichen zwichen #include und "header" / <header> geben.

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

Was macht die Headerdatei assert.h

A

Fehlersuche und Debugging

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

Was macht die Headerdatei ctype.h

A

Zeichentest und Konvertierung

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

Was macht die Headerdatei errno.h

A

Fehlercodes

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

Was macht die Headerdatei float.h

A

Limits/Eigentschaften für Gleitpunkttypen

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

Was macht die Headerdatei limits.h

A

Implementierungsonstanten

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

Was macht die Headerdatei math.h

A

mathematische Funktionen

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

Was macht die Headerdatei locale.h

A

länderspezifische Eigenschaften

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

Was macht die Headerdatei setjmp.h

A

unbedinge Sprünge

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

Was macht die Headerdatei signal.h

A

Signale

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

Was macht die Headerdatei stdarg.h

A

variable Paramterübergabe

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

Was macht die Headerdatei stddef.h

A

Standart-Datentyp

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

was macht die Headerdatei stdio.h

A

Standart-I/O

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

Was macht die Headerdatei stdlib.h

A

nützliche Funktionen

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

Was macht die Headerdatei string.h

A

Zeichenkettenoperationen

26
Q

Was macht die Headerdatei time.h

A

Datum und Uhrzeit

27
Q

Was macht die Headerdatei complex.h

A

komplexe Arithmetik

28
Q

Was macht die Headerdatei Fenv.h

A

Kontrolle der Gleitpunktzahlen-Umgebung

29
Q

Was macht die Headerdatei inttypes.h

A

für genauere Integertypen

30
Q

Was macht die Headerdatei iso646.h

A

alternative Schreibweise für logische Operatoren; Verwendung von Zeichensätzen im ISO-646 Format

31
Q

Das macht die Headerdatei stdbool.h

A

boolesche Datentypen

32
Q

Was macht die Headerdatei stdint.h

A

ganzzahlige Typen mit vorgegebener Breite

33
Q

Was macht die Headerdatei tgmath.h

A

typengenerische Mathematik-Funktionen

34
Q

Was macht die Headerdatei wchar.h

A

erweiterer Zeichensatz

35
Q

Was macht die Headerdatei wctype.h

A

Zeichenuntersuchung für den erweiterten Zeichensatz

36
Q

Was macht die Präprozessordirektive #define

A

Man kann Konstanten und Makros definieren. Mann gibt dabei Zeichenketten an die durch andere Zeichenketten oder Konstanten von Präprozessor vor dem Compilieren ausgetauscht werden.

37
Q

Präprozessor Konstanden mit #definie - Definition

A
#define Bezeichner        Konstante
38
Q

Was macht die definition einer Konstate mit #definie

A

Es tauscht jedes vorkommen vom Bezeichner der Definition im Quelltext durch die Konstante aus

39
Q

Kann man Definiterte Konstanten auch in anderen Konstanten verwenden, und wenn ja, gib ein Beispiel an

A

Ja

#define PI 3.141592653
#define PI_2 PI*2
40
Q

Präprozessor Makros mit #definie - Definition

A
Bezeichener(Bezeichner_Liste)        Ersatzbezeichner
41
Q

Was macht die definition eines Makros mit #definie

A

Genau wie die Konstanten, nur das hier die Paramter im Bezeichner auch durch die angegeben ersetzt werden.

42
Q

Kann man ein Makro/Konstante über mehrere Zeilen definieren?

A

Ja

43
Q

Wie kann man ein Makro/Konstante über mehrere Zeilen definieren?

A

mit einem \ am Ende der Zeile

44
Q

Was ist der Gültigkeitsbereich bei #define

A

Gilt von #define bis zum ende der Datei (nicht über alle Datein im Ordner) oder bis zum #undefine

45
Q

Kann man ein bereits definiertes Makro/Konstante noch mal definieren mit einem anderen Wert in seinem Gültigkeitsbereich?

A

Nein

46
Q

Kann man ein bereits definiertes Makro/Konstante noch mal definieren mit dem gleichen Wert in seinem Gültigkeitsbereich?

A

Ja

47
Q

Wie kann ich Quellcode bedingt Kompilieren

A
#ifdef Symbol
        ...
#elif Symbol
				...
#else
				...
#endif							
48
Q

Wie kann ich bei der Bedinkten Kompilierung einbauen, ob etwas nicht Definiert wurde?

A

Mit #ifndef

49
Q

Was ist eine äquivalente Schreibweise zu #ifdef

A
#if definied MAKRO
50
Q

Was ist eine äquivalente Schreibweise zu #ifndef

A
#if !definied MAKRO
51
Q

Kann man bei der Bedingten Kompilierung die Bedingung logisch Verknüpfen?

A

Ja

52
Q

Was erlaubt einem die #if defined Version gegen über der #ifdef Version?

A

Man kann das defined weglassen und statt dessen eine logische abfrage machen oder abfragen ob mehrere sachen stimmen indem man sie mit einem logischen Operator verknüpft.

53
Q

Welches Vordefinierte Makro wird durch die aktuelle Zeile in der Programmdatei ersetzt?

A
_ _LINE_ _
54
Q

Welches Vordefinierte Makro wird durch den Namen der Programmdatei ersetzt?

A
_ _FILE_ _
55
Q

Welches Vordefinierte Makro wird durch die Übersetzungszeit der Programmdatei ersetzt?

A
_ _TIME_ _
56
Q

Welches Vordefinierte Makro wird durch 1 ersetzt, wenn es sich um einen ANSI-C konformen Compiler handelt?

A
_ _STDC_ _
57
Q

Welches Vordefinierte Makro gibt den namen der Funktion aus, in der dieses Makro verwendet wird?

A
_ _func_ _
58
Q

Welches Vordefinierte Makro ist auf 1 gesetzt wenn es sich um eine Hosted-Implementierung der Standart-Bibliothek handelt, sonst 0?

A
_ _STD_HOSTED_ _
59
Q

Welches Vordefinierte Makro ist auf 199901L gestzt, wenn der Compiler ANSI-C99 Standart unterstützt?

A
_ _STD_VERSION_ _
60
Q

Wie kann man in einem Makro den Namen der Variable verwenden, die beim Makro angegeben wird?

A

In den man # vor dan Variablenbezeichner im Makro stellt.

#define ausgabe(Zahl) = #Zahl
61
Q

Wie kann man ein Makro/Konstante wieder aufheben?

A
#undef makroname
62
Q

Wie kann man eine Fehlermeldung mit einer Präprozessordirektive ausgeben?

A

Mit #error

63
Q

Wie gibt man mit #error eine Fehlermeldung aus?

A
#error "Fehlermeldung"