|
Übersicht |
6 |
|
|
Inhaltsverzeichnis |
8 |
|
|
Vorwort |
16 |
|
|
Vorwort |
17 |
|
|
Kapitel 1: Vorbereitung |
18 |
|
|
Über dieses Buch und für wen es gedacht ist |
19 |
|
|
Was ist C? |
20 |
|
|
Die Vorteile von C |
22 |
|
|
Die Nachteile von C |
23 |
|
|
Was man braucht |
24 |
|
|
Was Sie erwartet |
25 |
|
|
Editoren |
26 |
|
|
Xcode |
27 |
|
|
Sich als Entwickler bei Apple anmelden |
27 |
|
|
Xcode herunterladen |
28 |
|
|
Xcode auf der Installations-DVD |
29 |
|
|
Die Installation |
30 |
|
|
Wo ist Xcode installiert worden? |
30 |
|
|
Die Lightweight IDE |
31 |
|
|
Die Dokumentation |
32 |
|
|
Das Terminal |
33 |
|
|
Bwana |
35 |
|
|
Das Web |
37 |
|
|
Kapitel 2: Die Unix-Werkzeuge |
40 |
|
|
C ist einfach nur Text |
41 |
|
|
GCC im Terminal |
42 |
|
|
Der Zielpfad |
44 |
|
|
Der Zielprozessortyp |
45 |
|
|
Automatisierung |
46 |
|
|
Der Präprozessor, Compiler und Linker |
47 |
|
|
Der Präprozessor |
47 |
|
|
Der Compiler |
49 |
|
|
Der Linker |
50 |
|
|
Kapitel 3: Die Lightweight IDE |
52 |
|
|
Start |
53 |
|
|
Einstellungen |
55 |
|
|
Testlauf |
57 |
|
|
Fehleranzeige |
58 |
|
|
Kapitel 4: Grundlagen |
62 |
|
|
Überblick über die Bestandteile eines C-Programms |
63 |
|
|
Präprozessoranweisungen |
63 |
|
|
Kommentare |
63 |
|
|
Funktionen |
64 |
|
|
Blöcke |
65 |
|
|
Anweisungen |
65 |
|
|
Zeichenketten |
65 |
|
|
Der Zeichensatz |
65 |
|
|
Der Quellzeichensatz |
66 |
|
|
Der Ausführungszeichensatz |
67 |
|
|
Schreibweisen |
68 |
|
|
Kommentare |
69 |
|
|
Klassische Kommentare |
69 |
|
|
C99 Kommentare |
70 |
|
|
Verschachtelte Kommentare |
70 |
|
|
Zeichenketten und Escape-Sequenzen |
71 |
|
|
Escape-Sequenzen |
72 |
|
|
Mehrzeilige Zeichenketten |
74 |
|
|
Kapitel 5: Variablen |
76 |
|
|
Was sind Variablen? |
77 |
|
|
Deklaration |
77 |
|
|
Bezeichner |
78 |
|
|
Reservierte Wörter |
79 |
|
|
Konventionen bei der Benennung |
79 |
|
|
Deklarationsort |
80 |
|
|
Initialisierung und Zuweisungsoperator |
82 |
|
|
Deklaration und Initialisierung auf einer Zeile |
85 |
|
|
Selbstzuweisung |
85 |
|
|
Kapitel 6: Elementare Datentypen |
88 |
|
|
Ganzzahlige Typen |
89 |
|
|
Der sizeof-Operator |
90 |
|
|
Grenzen der ganzzahligen Typen |
91 |
|
|
Signed und Unsigned |
93 |
|
|
Wo ist die Standard C Library? |
94 |
|
|
Bits, Bytes und Zahlensysteme |
100 |
|
|
Das binäre Zahlensystem |
100 |
|
|
Der Taschenrechner des Programmierers |
101 |
|
|
Das oktale und hexadezimale Zahlensystem |
102 |
|
|
Ganzzahlige Literale oder Konstanten |
105 |
|
|
Der Typ von ganzzahligen Konstanten |
106 |
|
|
Das char und die Zeichenkonstanten |
108 |
|
|
Escape-Sequenzen in Zeichenkonstanten |
110 |
|
|
Fließkommatypen |
113 |
|
|
Fließkommakonstanten |
115 |
|
|
Typumwandlung |
116 |
|
|
Implizite Typumwandlungen |
117 |
|
|
Explizite Typumwandlung |
120 |
|
|
Kapitel 7: printf und scanf |
124 |
|
|
Ausgabe mit printf |
125 |
|
|
Spezifizierer und Längenmodifizierer |
126 |
|
|
Rückgabewert |
129 |
|
|
Genauigkeit |
129 |
|
|
Feldbreite |
131 |
|
|
Feldbreite bei Kommazahlen |
131 |
|
|
Feldbreite bei Ganzzahlen |
132 |
|
|
Linksbündige Feldbreite |
133 |
|
|
Variable Feldbreite |
134 |
|
|
Variable Genauigkeit |
135 |
|
|
Auffüllen mit Null |
136 |
|
|
Vorzeichen |
137 |
|
|
Reihenfolge |
137 |
|
|
Lokalisierte Dezimaltrennzeichen |
138 |
|
|
Eingabe mit scanf |
138 |
|
|
Einlesen mehrerer Werte |
140 |
|
|
Das Dezimaltrenzeichen beim Einlesen |
141 |
|
|
Feldbreiten und Längenmodifizierer |
141 |
|
|
Kapitel 8: Kontrollstrukturen |
144 |
|
|
Verzweigungen |
145 |
|
|
if |
145 |
|
|
if mit Block |
147 |
|
|
if mit else |
148 |
|
|
Schachtelung |
150 |
|
|
switch |
152 |
|
|
Schleifen |
157 |
|
|
do-while |
157 |
|
|
while |
160 |
|
|
for |
164 |
|
|
Intermezzo: schrittweises Ausführen im Debugger |
167 |
|
|
break |
170 |
|
|
continue |
171 |
|
|
return |
173 |
|
|
goto |
173 |
|
|
Kapitel 9: Operatoren |
174 |
|
|
Arithmetische Operatoren |
175 |
|
|
Zuweisungsoperatoren |
177 |
|
|
Inkrement- und Dekrement-Operatoren |
179 |
|
|
Vergleichsoperatoren |
182 |
|
|
Logische Operatoren |
184 |
|
|
Bit-Operatoren |
186 |
|
|
Verschiebeoperatoren |
187 |
|
|
Logische Bit-Operatoren |
192 |
|
|
Das bitweise UND |
193 |
|
|
Das bitweise ODER |
196 |
|
|
Die dezimale Entsprechung |
197 |
|
|
Das bitweise exklusive ODER |
199 |
|
|
Das bitweise NICHT |
200 |
|
|
Sonstige Operatoren |
202 |
|
|
Die bedingte Bewertung |
202 |
|
|
Kapitel 10: Vektoren (Arrays) |
204 |
|
|
Definition |
205 |
|
|
Initialisierung bei der Definition |
206 |
|
|
Initialisierung |
207 |
|
|
Einlesen in einer Schleife |
209 |
|
|
Die Präprozessor-Anweisung define |
210 |
|
|
Initialisieren mit Zufallswerten |
211 |
|
|
Einlesen über scanf |
214 |
|
|
Beispiele zum Umgang mit Arrays |
214 |
|
|
Suchen |
215 |
|
|
Maximum, Minimum und Durchschnitt |
215 |
|
|
Länge |
217 |
|
|
Sortieren |
217 |
|
|
Zeichenketten (Strings) |
219 |
|
|
Zeichenketten kürzen |
222 |
|
|
Zeichenkette mit gets und fgets erzeugen |
224 |
|
|
Beispielfunktionen aus der Standard C Library |
226 |
|
|
Länge ermitteln mit strlen |
226 |
|
|
Suchen mit strcspn |
227 |
|
|
Kopieren mit strcpy |
228 |
|
|
Verbinden mit strcat |
229 |
|
|
Mehrdimensionale Arrays |
230 |
|
|
Kapitel 11: Zeiger (Pointer) |
236 |
|
|
Speicheradressen |
237 |
|
|
Adressoperator und Zeigerkonstanten |
237 |
|
|
Die Größe einer Speicheradresse |
238 |
|
|
Deklaration eines Zeigers |
240 |
|
|
Initialisierung eines Zeigers |
241 |
|
|
Zeiger sind flexibel |
243 |
|
|
Von der Adresse zum Wert |
245 |
|
|
Der Verweisoperator |
245 |
|
|
Zeiger auf Zeiger |
249 |
|
|
Zeiger statt Variablen |
250 |
|
|
Zeigertypen |
252 |
|
|
Typumwandlung |
252 |
|
|
Der void-Zeiger |
256 |
|
|
Der NULL-Zeiger |
258 |
|
|
Höhere Zeigermagie |
259 |
|
|
Mit Zeigern rechnen und vergleichen |
259 |
|
|
Array-Namen sind Zeiger |
261 |
|
|
Zeiger auf Arrays |
266 |
|
|
Zeiger auf zweidimensionale Arrays |
269 |
|
|
Arrays mit Zeigern |
271 |
|
|
Platzsparende zweidimensionale char-Arrays |
277 |
|
|
Kapitel 12: Funktionen |
280 |
|
|
Erstellung von Funktionen |
281 |
|
|
Deklaration oder Prototyperstellung |
281 |
|
|
Funktionsdefinition |
284 |
|
|
Umgang mit Funktionen |
286 |
|
|
Aufruf einer Funktion |
286 |
|
|
Werterückgabe |
287 |
|
|
Auffangen der Rückgabe |
289 |
|
|
Falscher Umgang mit Zeigern bei der Rückgabe |
292 |
|
|
Zeiger als Rückgabewert mit malloc und free |
294 |
|
|
Lokale Variablen |
297 |
|
|
Globale Variablen |
299 |
|
|
Parameter |
302 |
|
|
Mehrere Parameter |
305 |
|
|
Unterschiedliche Parametertypen |
307 |
|
|
Namensparameter (Call by Value) |
309 |
|
|
Referenzparameter (Call by Reference) |
310 |
|
|
Arrays als Parameter |
312 |
|
|
Rekursive Funktionen |
314 |
|
|
Spezifizierer |
317 |
|
|
Die Speicherklassenspezifizierer |
317 |
|
|
extern |
317 |
|
|
static |
318 |
|
|
register |
318 |
|
|
auto |
318 |
|
|
Der Funktionsspezifizierer inline |
319 |
|
|
Die Typ-Qualifizierer const, volatile und restrict |
319 |
|
|
const |
319 |
|
|
volatile |
319 |
|
|
restrict |
320 |
|
|
Erstellen einer Header-Datei |
320 |
|
|
Die Funktion main und ihre Parameter |
324 |
|
|
Untersuchung der Argumente |
326 |
|
|
PATH-Variable anpassen |
328 |
|
|
Beispiel für Argumente auf der Kommandozeile |
331 |
|
|
Kapitel 13: Eigene Datentypen |
336 |
|
|
Strukturen (struct) |
337 |
|
|
Deklaration und Initialisierung von Struct-Typen |
337 |
|
|
Deklaration |
337 |
|
|
Mehrere Struct-Deklarationen |
339 |
|
|
Strukturen als Elemente von Strukturen deklarieren |
340 |
|
|
Initialisierung bei der Deklaration |
341 |
|
|
Speicherbelegung und Größe eines Structs |
342 |
|
|
Spätere Initialisierung |
344 |
|
|
Vom Umgang mit einem Struct |
345 |
|
|
Der Punkt-Operator |
345 |
|
|
Die Initialisierungsliste |
347 |
|
|
Direkte Zuweisung |
348 |
|
|
Arbeiten mit verschachtelten Strukturen |
349 |
|
|
Datum und Uhrzeit in C |
352 |
|
|
Die Funktionen time und localtime |
352 |
|
|
Die Funktion strftime |
355 |
|
|
Der Pfeil-Operator |
357 |
|
|
typedef |
358 |
|
|
Verkettete Listen und etwas Farbe |
360 |
|
|
Unions |
367 |
|
|
Bitfelder |
369 |
|
|
Aufzählungen (enum) |
372 |
|
|
Schreiben und Lesen von Dateien |
374 |
|
|
Datei erzeugen |
375 |
|
|
Pfadangaben |
378 |
|
|
Schreiben |
380 |
|
|
Mit den Funktionen fprintf, fputs und fputc |
382 |
|
|
Lesen |
384 |
|
|
Mit der Funtkion fgetc |
385 |
|
|
Mit der Funktion fgets |
386 |
|
|
Mit fgets Daten in ein Struct einlesen |
387 |
|
|
Kapitel 14: Erste Schritte in Xcode |
390 |
|
|
Anlegen eines C-Projekts |
391 |
|
|
Die Arbeitsumgebung |
393 |
|
|
Das Projektfenster |
393 |
|
|
Die Gruppen- und Dateiliste |
394 |
|
|
Die Detailansicht |
395 |
|
|
Der Editor |
397 |
|
|
Auto-Vervollständigung (Code Sense) |
397 |
|
|
Schnellhilfe (Quick Help) |
398 |
|
|
Gutter und Focus ribbon |
399 |
|
|
Navigationsleiste (Navigation bar) |
400 |
|
|
Die Konsole (Console) |
402 |
|
|
Konfigurationen und Build-Einstellungen |
403 |
|
|
Das Debugger-Fenster |
406 |
|
|
Anhänge |
408 |
|
|
A – Tabellen |
409 |
|
|
Basis-Ausführungszeichensatz |
409 |
|
|
Escape-Sequenzen |
410 |
|
|
Tastenkürzel für Sonderzeichen |
411 |
|
|
Digraph- und Trigraph-Folgen |
411 |
|
|
Reservierte Schlüsselwörter |
412 |
|
|
Größe der elementaren Datentypen* |
412 |
|
|
Schreibweise von Konstanten |
413 |
|
|
Flusskontrolle |
414 |
|
|
Deklarationen |
417 |
|
|
Arithmetische Operatoren |
419 |
|
|
Bit-Operatoren |
421 |
|
|
Zuweisungsoperatoren |
422 |
|
|
Vergleichsoperatoren |
422 |
|
|
Logische Operatoren |
423 |
|
|
Speicher-Operatoren |
423 |
|
|
Sonstige Operatoren |
424 |
|
|
Operatorrangfolge |
425 |
|
|
Wichtige Formatbeschreiber der Familie der printf-Funktionen |
426 |
|
|
Spezifizierer |
426 |
|
|
Längenmodifizierer |
427 |
|
|
Feldbreite und Genauigkeit |
427 |
|
|
Flags |
427 |
|
|
Datum und Zeit im Struct tm |
427 |
|
|
Sonstige nützliche Tabellen |
429 |
|
|
Mac OS Roman Kodierung |
429 |
|
|
Bedeutung der Abkürzungen in der MAC OS Roman-Tabelle: |
431 |
|
|
ANSI Escape-Sequenzen |
432 |
|
|
B – Quellen |
434 |
|
|
Weiterführende Bücher |
434 |
|
|
Objective-C und Cocoa |
434 |
|
|
C |
434 |
|
|
Werkzeuge |
435 |
|
|
Lighweight IDE |
435 |
|
|
Xcode |
435 |
|
|
Bwana |
435 |
|
|
GCC |
435 |
|
|
GDB |
435 |
|
|
Übersicht über weitere Werkzeuge für Entwickler |
435 |
|
|
Informationen im Internet |
436 |
|
|
Apple |
436 |
|
|
C |
436 |
|
|
Deutsche Foren |
436 |
|
|
Text User Interfaces (TUI) |
437 |
|
|
ncurses (TUI) |
437 |
|
|
Grafische User Interfaces (GUI) für C |
437 |
|
|
XForms |
437 |
|
|
GTK+ |
437 |
|
|
Allegro |
437 |
|
|
Ausflüge in komplexe Spielwelten mit einfacher Grafik |
437 |
|
|
Rogue |
437 |
|
|
Dwarf Fortress |
438 |
|
|
Nethack |
438 |
|
|
Trade Wars 2002 |
438 |
|
|
C - Index |
439 |
|