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