Software entwine in C [FREE PDF DOWNLOAD]

Not allow reviews
Are you looking for the free PDF of Software entwine in C & C++[FREE PDF DOWNLOAD], then you have come to the right place. Download directly from the fast servers with a single click.

Download PDF:


Click Here to Download the PDF

Descriptions

TABLE OF CONTENT

1.1 Zum Inhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Die beiliegende CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Begriffskl¨arung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1 Syntax und Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Programmiersprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Klassifikation nach Hardwaren¨ahe . . . . . . . . . . . . . . . . . . 9
2.2.2 Klassifikation h¨oherer 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 Ausdrucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . ¨ 41
5.2 Arithmetische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2.1 Bin¨are arithmetische Operatoren . . . . . . . . . . . . . . . . . . . 41
5.2.2 Un¨are arithmetische Operatoren . . . . . . . . . . . . . . . . . . . . 42
5.3 Logische - und Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . 44
5.4 Bitoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.4.1 Setzen von Einzelbits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.4.2 L¨oschen von Einzelbits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.4.3 Prufen von Einzelbits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ¨ 50
XII Inhaltsverzeichnis
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 Wunsche des Auftraggebers . . . . . . . . . . . . . . . . . . . . . . . . ¨ 86
9.1.2 Das User Requirements Document . . . . . . . . . . . . . . . . . . 88
9.2 Das Handbuch zum API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
9.2.1 Erkl¨arung 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
Inhaltsverzeichnis XIII
12. Arbeitspriorit¨aten – 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 von 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 ruckg ¨ ¨angig machen . . . . . . . . . . . . . . . . . . . . 207
16.2 Einfugen von Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ¨ 207
16.3 Bedingte Ubersetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ¨ 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 L¨oschen von Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
21.5 Erstellen eines tar-Archivs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
21.6 Versionskontrolle von Source-Code . . . . . . . . . . . . . . . . . . . . . . . . 235
21.7 Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
XIV Inhaltsverzeichnis
22. Ein paar Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
22.1 Einfach und doppelt verkettete Liste . . . . . . . . . . . . . . . . . . . . . . 237
22.2 Bin¨arbaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
22.3 Hashmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
22.4 Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
23. Beispiele zur Ubung ¨ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
23.1 Beispiel 1: Bin¨are Ganzzahlrepr¨asentation . . . . . . . . . . . . . . . . . 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. Bin¨are Zahlenrepr¨asentationen . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Aufl¨osung von Operatoren . . . . . . . . . . . . . . . 269
C. Coding-Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
C.1 Generelle Regeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
C.2 Coding-Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

Similar Products

7652321445077765192

Add a review