|
17 | 17 | \inputcpp{warnings.cpp} |
18 | 18 |
|
19 | 19 | Fehler wie diese können nicht mehr auftreten, wenn ihr \emph{warnings} |
20 | | -anschaltet. Dies passiert über weiter Optionen, die wir dem Compiler mitgeben. |
| 20 | +anschaltet. Dies passiert über weitere Optionen, die wir dem Compiler mitgeben. |
21 | 21 |
|
22 | 22 | \textbf{Praxis:} |
23 | 23 | \begin{enumerate}[resume] |
|
54 | 54 | sie nicht einfach zu ignorieren. |
55 | 55 | \end{description} |
56 | 56 |
|
57 | | -Wenn ihr bei jedem Compilerlauf nun warnings anschalten wollt -- und am Besten auch noch für den debugger, falls ihr ihn braucht -- wird der Befehl zum Kompilieren langsam sehr lang. Für die Dauer des Vorkurses könnt ihr euch mittels |
| 57 | +Wenn ihr bei jedem Compilerlauf nun warnings anschalten wollt -- und am Besten |
| 58 | +auch noch für den debugger, falls ihr ihn braucht -- wird der Befehl zum |
| 59 | +Kompilieren langsam sehr lang. Für die Dauer des Vorkurses könnt ihr euch |
| 60 | +mittels |
58 | 61 |
|
| 62 | +\begin{center} |
59 | 63 | \texttt{alias\footnote{alias ist ein shell-befehl, der euch eine Reihe von |
60 | 64 | Anweisungen und Befehlen neu benennen lässt. In diesem Fall ist danach zum |
61 | 65 | Beispiel der noch nicht existente Befehl \texttt{compile} ein neuer Name für |
62 | 66 | \texttt{g++ -Vall -Wextra -Werror -O0 -g3}. Beachtet, dass ihr hier genau das |
63 | 67 | abtippen müsst, was da steht, mit Leerzeichen und allem} compile="g++ -Wall |
64 | 68 | -Wextra -Werror -O0 -g3"} |
| 69 | +\end{center} |
65 | 70 |
|
66 | 71 | ein bisschen Arbeit ersparen. Ein einfaches \texttt{compile -o foo foo.cpp} |
67 | 72 | wird dann automatisch den Compiler mit allen angegebenen Optionen aufrufen. Den |
|
73 | 78 | \begin{enumerate}[resume] |
74 | 79 | \item Mit der warning in \texttt{warnings.cpp} möchte euch der Compiler |
75 | 80 | darauf hinweisen, dass ihr hier eine Zuweisung macht, obwohl ein |
76 | | - Wahrheitswert erwartet wird. Es gibt zwei Möglichkeiten, die warning zu |
| 81 | + Wahrheitswert\footnote{Ein Wahrheitswert (\cppinline{bool}) ist ein |
| 82 | + Variablentyp, der die Werte wahr (\cppinline{true}) und falsch ( |
| 83 | + \cppinline{false}) annehmen kann.} |
| 84 | + erwartet wird. Es gibt zwei Möglichkeiten, die warning zu |
77 | 85 | beheben: Ihr könnt Klammern um die Zuweisung machen (und dem Compiler |
78 | 86 | so sagen, dass ihr euch sicher seid, dass hier eine Zuweisung hinsoll), |
79 | 87 | oder ihr könnt aus der Zuweisung einen Vergleich machen. Welche |
|
94 | 102 | er sich gleich verhält, aber schneller läuft. \texttt{-O2} würde |
95 | 103 | bedeuten, dass relativ stark optimiert wird. |
96 | 104 |
|
97 | | - \texttt{zaehlen.cpp} enthält ein Programm, um bei einem von der Nutzerin eingegebenen Wort zu zählen, wie oft ein bestimmter Buchstabe (zurzeit \texttt{a} vorkommt). |
| 105 | + \texttt{zaehlen.cpp} enthält ein Programm, um bei einem von der Nutzerin eingegebenen Wort zu zählen, wie oft der Buchstabe a vorkommt. |
98 | 106 | Kompiliert es mit \texttt{g++ -Wall -O2 -o zaehlen zaehlen.cpp} (probiert es auch einmal ohne \texttt{-O2} oder ohne \texttt{-Wall}) und schaut euch die resultierende Warning an. |
99 | 107 | Benutzt gegebenenfalls Google, um heraus zu finden, was sie bedeutet und wie ihr sie beheben könnt. |
100 | 108 | \end{enumerate} |
|
0 commit comments