ISBN: 3540419586
TITLE: Softwareentwicklung in C
AUTHOR: Schmaranz 
TOC:

1. Ziel und Inhalt dieses Buchs 1
1.1 Zum Inhalt 1
1.2 Motivation 3
1.3 Feedback 5
1.4 Die beiliegende CD-ROM 5
2. Begriffsklrung 7
2.1 Syntax und Semantik 7
2.2 Programmiersprachen 9
2.2.1 Klassifikation nach Hardwarenhe 9
2.2.2 Klassifikation hherer Programmiersprachen nach Konzepten 10
2.3 Vorschriften und Arten der Abarbeitung 13
2.4 Werkzeuge und Zwischenschritte bei der Programmerstellung 15
2.4.1 Interpreter 16
2.5 Testen 18
2.6 Software-Design 19
2.7 Verschiedenes 21
3. Erste Schritte in C 23
3.1 Hello World - das erste Beispiel 24
4. Datentypen und Variablen 29
5. Operatoren 41
5.1 Klammerung von Ausdrcken 41
5.2 Arithmetische Operatoren 41
5.2.1 Binre arithmetische Operatoren 41
5.2.2 Unre arithmetische Operatoren 42
5.3 Logische - und Vergleichsoperatoren 44
5.4 Bitoperatoren 46
5.4.1 Setzen von Einzelbits 49
5.4.2 Lschen von Einzelbits 50
5.4.3 Prfen von Einzelbits 50
5.4.4 Aneinanderreihen von kurzen Zahlen zu einer langen 51
5.4.5 Ein Beispiel zu den Bitoperationen 52
5.5 Zuweisungs-Kurzformen 53
6. Implizite Typumwandlungen 55
7. Kontrollstrukturen 57
7.1 if-else Statements 59
7.2 switch Statements 62
7.3 while Schleifen 64
7.4 do - while Schleifen 66
7.5 for Schleifen 67
7.6 break und continue 69
7.7 Das unselige goto Statement 70
8. Funktionen 73
8.1 Allgemeines 74
8.2 Scope und Lifetime 79
9. Kaffeeautomat - ein kleines Beispiel 85
9.1 User Requirements 86
9.1.1 Wnsche des Auftraggebers 86
9.1.2 Das User Requirements Document 88
9.2 Das Handbuch zum API 91
9.2.1 Erklrung des Callback-Mechanismus 93
9.3 Software Requirements 94
9.3.1 Das Software Requirements Document 95
9.4 Architectural Design 98
9.4.1 Das Architectural Design Document 100
9.5 Detailed Design 104
9.5.1 Das Detailed Design Document 104
Variablen 105
Funktionen 106
9.6 Implementation 106
10. Pointer 117
10.1 Das Prinzip von Pointern 117
10.2 Pointer und Adressen 120
10.3 Dynamische Memory-Verwaltung 126
10.4 Dynamische Arrays 129
10.5 Pointerarithmetik 138
10.6 Strings in C 140
10.7 Funktionspointer 144
11. Structures 149
12. Arbeitsprioritten - ein kleines Beispiel 173
12.1 Aufgabenstellung 173
12.2 Designentscheidungen 174
12.3 Implementation 175
13. Typendefinitionen und Casts 183
14. Rekursion 189
15. Arbeiten mit mehreren Files: make 195
15.1 Das Prinzip van Make 195
15.2 Make Rules 196
15.3 Variablen in Makefiles 200
16. Der C-Preprocessor 203
16.1 Macros 204
16.1.1 Macros ohne Parameter 204
16.1.2 Macros mit Parametern 205
16.1.3 Definitionen rckgngig machen 207
16.2 Einfgen von Files 207
16.3 Bedingte bersetzung 208
17. Speicherklassen 211
17.1 Die Speicherklasse extern 211
17.2 Die Speicherklasse register 212
17.3 Die Speicherklasse static 213
18. Der Datentyp enum 215
19. Unions 219
20. Weitere wichtige C-Konstrukte 225
20.1 Command-Line Arguments .225
20.2 File Handling 226
21. Diverse hilfreiche Befehle und Tools 231
21.1 Suche nach Textstellen in Files 232
21.2 Suche nach bestimmten Files im Filesystem 233
21.3 Kombination von Text- und Filesuche 233
21.4 Lschen von Files 234
21.5 Erstellen eines tar-Archivs 234
21.6 Versionskontrolle von Source-Code 235
21.7 Emacs 235
22. Ein paar Datenstrukturen 237
22.1 Einfach und doppelt verkettete Liste 237
22.2 Binrbaum 239
22.3 Hashmap 241
22.4 Stack 243
23. Beispiele zur bung 245
23.1 Beispiel 1: Binre Ganzzahlreprsentation 245
23.1.1 Aufgabenstellung 246
23.2 Beispiel 2: Sortierte Liste 247
23.2.1 Aufgabenstellung 248
Informelle Formulierung der Aufgabenstellung 248
User Requirements Document 250
23.2.2 Ein paar Tipps 252
23.3 Beispiel 3: Taschenrechner 253
23.3.1 Aufgabenstellung 253
Informelle Formulierung der Aufgabenstellung 253
User Requirements Document 257
A. Binre Zahlenreprsentationen 259
A.1 Organisation von Bits und Bytes 259
A.2 Ganzzahlen 260
A.2.1 Verschiedene Shift-Operationen, Over- und Underflow 262
A.2.2 Oktal- und Hexadezimalzahlen 265
A.3 Gleitkommazahlen 266
B. Reihenfolge der Auflsung von Operatoren 269
C. Coding-Standard 271
C.1 Generelle Regeln 271
C.2 Coding-Rules 272
D. Vollstndige Implementation des Kaffeeautomaten 275
E. readLine unter MS-Windows 285
F. Vollstndige Implementation der Clean Structures 287
G. Vollstndige Implementation der Arbeitsprioritten-Liste 299
H. Vollstndige rekursive Implementation eines Binrbaumes 309
I. Emacs 313
I.1 Konventionen 313
I.2 Allgemeine Tastenkombinationen 316
I.3 Hilfe in Emacs 323
I.4 Keyboard Macros 323
I.5 Email 325
I.6 News 326
I.7 Dmacro Mode 326
I.8 Konfiguration 327
J. Lsungen zu den bungsbeispielen 329
J.1 Lsung zu Beispiel 1 (Binre Ganzzahlreprsentation) 329
J.1.1 Implementation 1 330
J.1.2 Implementation 2 333
J.1.3 Implementation 3 335
J.2 Lsung zu Beispiel 2 (Sortierte Liste) 337
J.2.1 Implementation 1 338
Vergleich der Anforderungen 338
SRD 339
Das Programm 340
J.2.2 Implementation 2 347
Doppelt Verkettete Liste 348
Input Handling 355
Error Handling 357
Das Hauptprogramm 358
Makefile 361
J.3 Lsung zu Beispiel 3 (Taschenrechner) 361
J.3.1 Identifikation der Module 362
J.3.2 Error-Handling 363
J.3.3 Steuerungseinheit und Operationen 366
J.3.4 Input-Handling 371
J.3.5 Hashmap 376
J.3.6 Stack 387
J.3.7 Debugging 395
J.3.8 Makefile 397
J.3.9 Schlussfolgerungen aus der Implementation 399
Literaturverzeichnis 401
END
