C-Programmierung unter Linux/UNIX/Windows: Beispiele, Anwendungen, Programmiertechniken
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Lohmar
Millin
2011
|
Ausgabe: | 3., aktualisierte Aufl. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XVI, 628 S. Ill., graph. Darst. |
ISBN: | 9783938626221 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV039650432 | ||
003 | DE-604 | ||
005 | 20140120 | ||
007 | t | ||
008 | 111020s2011 gw ad|| |||| 00||| ger d | ||
015 | |a 11,N39 |2 dnb | ||
016 | 7 | |a 1015390722 |2 DE-101 | |
020 | |a 9783938626221 |c Pb. : EUR 39.90 (DE), EUR 41.10 (AT) |9 978-3-938626-22-1 | ||
024 | 3 | |a 9783938626221 | |
035 | |a (OCoLC)760139817 | ||
035 | |a (DE-599)DNB1015390722 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-NW | ||
049 | |a DE-739 |a DE-83 |a DE-859 |a DE-573 |a DE-634 |a DE-523 |a DE-1051 |a DE-92 |a DE-29T |a DE-1046 | ||
082 | 0 | |a 005.133 |2 22/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Herold, Helmut |d 1956- |e Verfasser |0 (DE-588)122454340 |4 aut | |
245 | 1 | 0 | |a C-Programmierung unter Linux/UNIX/Windows |b Beispiele, Anwendungen, Programmiertechniken |c Helmut Herold ; Jörg Arndt |
246 | 1 | 3 | |a C-Programmierung unter Linux, Unix, Windows |
250 | |a 3., aktualisierte Aufl. | ||
264 | 1 | |a Lohmar |b Millin |c 2011 | |
300 | |a XVI, 628 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a C |g Programmiersprache |0 (DE-588)4113195-2 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a C |g Programmiersprache |0 (DE-588)4113195-2 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Arndt, Jörg |d 1964- |e Verfasser |0 (DE-588)142015806 |4 aut | |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024500117&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-024500117 |
Datensatz im Suchindex
_version_ | 1804148509308354560 |
---|---|
adam_text | IMAGE 1
INHALTSVERZEICHNIS
1 EINFUEHRENDES BEISPIEL 3
1.1 ERSTE WESENTLICHE C-REGELN 3
1.2 ZEILEN-KOMMENTARE M I T / / ( N EU IN C99) 5
1.3 GUTE LESBARKEIT VON PROGRAMMEN 5
1.4 VERMEIDEN VON GESCHACHTELTEN KOMMENTAREN 6
2 ELEMENTARE DATENTYPEN 7
2.1 DIE GRUNDDATENTYPEN IN C 7
2.2 WERTEBEREICHE FUER DIE EINZELNEN DATENTYPEN 9
2.3 FALLGRUBE: VERLUST VON BITS BEI ZU GROSSEN ZAHLEN 10
3 KONSTANTEN 11
3.1 CHAR-KONSTANTEN 11
3.2 GANZZAHLIGE KONSTANTEN 11
3.3 GLEITPUNKTKONSTANTEN 12
4 VARIABLEN 13
4.1 VARIABLEN U ND DIE C-REGELN FUER VARIABLENNAMEN 13
4.2 TIPPS ZUR WAHL DER VARIABLENNAMEN 14
4.3 DEKLARATION VON VARIABLEN 14
4.4 TIPP: VARIABLEN BEREITS BEI DEKLARATION DOKUMENTIEREN . . .. 16
5 AUSDRUECKE UND OPERATOREN 17
5.1 DER EINFACHE ZUWEISUNGSOPERATOR 17
5.1.1 ALLGEMEINES Z UM EINFACHEN ZUWEISUNGSOPERATOR . . .. 17
5.1.2 INITIALISIERUNG VON VARIABLEN 19
5.2 ARITHMETISCHE OPERATOREN 19
5.2.1 DIE ARITHMETISCHEN OPERATOREN 19
BIBLIOGRAFISCHE INFORMATIONEN HTTP://D-NB.INFO/1015390722
DIGITALISIERT DURCH
IMAGE 2
INHALTSVERZEICHNIS
5.2.2 DIE C-BEGRIFFE AUSDRUCK U ND ANWEISUNG 20
5.2.3 AUSGABE VON INT-VARIABLEN U N D - A U S D R UE C K EN 21
5.2.4 AUSGABE VON GLEITPUNKT-VARIABLEN U N D - A U S D R UE C K EN . ..
21
5.2.5 FALLGRUBE: GANZZAHL- STATT GLEITPUNKTDIVISION 22
5.3 VERGLEICHSOPERATOREN 23
5.3.1 DIE UNTERSCHIEDLICHEN VERGLEICHSOPERATOREN 23
5.3.2 DIE ZWEI WAHRHEITSWERTE VON VERGLEICHEN 23
5.3.3 PRIORITAETEN DER VERGLEICHSOPERATOREN 23
5.4 LOGISCHE OPERATOREN 24
5.4.1 TRUE U ND FALSE IN C 24
5.4.2 DER DATENTYP _BOOL (NEU IN C99) 24
5.4.3 DIE C-OPERATOREN FUER NOT, A ND U ND OR IM UEBERBLICK . .. 25
5.4.4 DER NEGATIONS-OPERATOR ! 25
5.4.5 DER AND-OPERATOR && 26
5.4.6 DER OR-OPERATOR || 26
5.4.7 DIE PRIORITAET DER LOGISCHEN OPERATOREN 26
5.4.8 KEINE UNNOETIGE AUSWERTUNG RECHTS VON &&UND || . . .. 27
5.4.9 UEBUNG: UEBERPRUEFUNGEN MIT LOGISCHEN OPERATOREN . . .. 28
5.5 BIT-OPERATOREN 28
5.5.1 BITWEISE INVERTIERUNG MIT - 28
5.5.2 BITWEISE AND-VERKNUEPFUNG MIT & 30
5.5.3 BITWEISE OR-VERKNUEPFUNG MIT | 31
5.5.4 BITWEISE XOR-VERKNUEPFUNG M I T A 33
5.5.5 BIT-OPERATOREN N UR FUER GANZZAHLIGE DATENTYPEN ERLAUBT . .. 34
5.5.6 FALLGRUBEN 34
5.5.7 UEBUNG: UEBERPRUEFUNGEN MIT BIT-OPERATOREN 36
5.6 SHIFT-OPERATOREN 37
5.6.1 DIE BEIDEN SHIFT-OPERATOREN U ND 37
5.6.2 SHIFT-OPERATOREN N UR FUER GANZZAHLIGE DATENTYPEN ERLAUBT . . 38
5.6.3 PRIORITAET DER SHIFT-OPERATOREN 38
5.7 ZUSAMMENGESETZTE ZUWEISUNGSOPERATOREN 39
5.7.1 DIE ZUSAMMENGESETZTEN ZUWEISUNGSOPERATOREN . . .. 39
5.8 INKREMENT- U ND DEKREMENT-OPERATOREN 40
5.8.1 INKREMENTIEREN U ND DEKREMENTIEREN MIT ++ U ND - . . .. 40
5.8.2 PRAEFIX- U ND POSTFIX-SCHREIBWEISE FUER ++ U ND - . . . . .. 40
5.8.3 ++ U ND - IST N UR FUER VARIABLEN ERLAUBT 42
5.8.4 ++ U ND - IST NICHT AUF LINKEN SEITE EINER ZUWEISUNG ERLAUBT . .
42
VI
IMAGE 3
INHALTSVERZEICHNIS
,5.9 PRIORITAETSTABELLE FUER OPERATOREN 42
5.10 ASSOZIATIVITAET DER OPERATOREN 43
5.11 ERLAUBTE UND UNERLAUBTE OPERATIONEN FUER C-DATENTYPEN . . .. 43
5.12 PRIORITAET UND AUSWERTUNGSZEITPUNKT BEI ++ UND - 43
5.13 FALLGRUBE: ZUGRIFF AUF NICHT VORBESETZTE VARIABLEN 45
5.14 UEBUNGEN 46
6 SYMBOLISCHE KONSTANTEN 47
6.1 KONSTANTEN-DEFINITION MIT #DEFINE 47
6.1.1 DIE DIREKTIVE #DEFINE 47
6.1.2 REGELN FUER KONSTANTEN-NAMEN BEI #DEFINE 49
6.1.3 KONSTANTEN MACHEN PROGRAMM LEICHT AENDERBAR 49
6.2 KONSTANTEN-DEFINITION MIT CONST 49
7 EIN- UND AUSGABE 51
7.1 HEADERDATEIEN UND #INCLUDE 51
7.1.1 BIBLIOTHEKEN UND HEADERDATEIEN 51
7.1.2 EIGENE HEADERDATEIEN 52
7.2 EIN- UND AUSGABE EINES ZEICHENS 53
7.2.1 GETCHAR() UND PUTCHAR() 53
7.2.2 GEPUFFERTE EINGABE BEI GETCHAR() 53
7.2.3 PUFFER-BEREINIGUNG MIT DUMMY GETCHAR() 57
7.2.4 PUFFER-BEREINIGUNG IST NICHT IMMER NOTWENDIG 58
7.2.5 FALLGRUBE: ZAHLEN NICHT MIT GETCHAR() EINLESEN 60
7.2.6 DIE HEADERDATEI CTYPE.H 60
7.2.7 EINFACHE MAKROS 62
7.3 DIE AUSGABE MIT PRINTF() 67
7.3.1 DIE FUNKTION PRINTF() 67
7.3.2 FALLGRUBEN 74
7.3.3 TIPPS 75
7.4 DIE EINGABE MIT SCANF() 77
7A.1 DIE FUNKTION SCANF() 77
7.4.2 FALLGRUBEN 83
7.4.3 DIE HEADERDATEI MATH.H 86
7.4.4 FALLGRUBE: VERGESSEN VON #INCLUDE MATH.H 88
8 DATENTYPUMWANDLUNGEN 91
8.1 IMPLIZITE DATENTYPUMWANDLUNGEN 91
VII
IMAGE 4
INHALTSVERZEICHNIS
8.1.1 DER SIZEOF-OPERATOR .91
8.1.2 IMPLIZITE DATENTYPUMWANDLUNGEN 93
8.1.3 FALLGRUBE: ZUWEISEN VON GANZZAHLAUSDRUECKEN AN GLEITPUNKTVARIABLEN
97
8.2 EXPLIZITE DATENTYPUMWANDLUNGEN 98
8.2.1 EXPLIZITE DATENTYPUMWANDLUNGEN MIT CAST-OPERATOR . .. 98
8.2.2 FALLGRUBEN 98
9 DIE HEADERDATEIEN LIMITS.H UND FLOAT.H 101
9.1 LIMITS.H - GRENZWERTE VON GANZZAHLTYPEN 101
9.2 FLOAT.H - GRENZWERTE VON GLEITPUNKT-DATENTYPEN 102
10 ANWEISUNGEN UND BLOECKE 103
11 DIE IF-ANWEISUNG 105
11.1 DIE ZWEISEITIGE IF-ANWEISUNG 105
11.2 DIE EINSEITIGE IF-ANWEISUNG 110
11.3 VERSCHACHTELTE IF-ANWEISUNGEN 112
11.4 TIPP: EINRUECKEN UNTERGEORDNETER PROGRAMMTEILE 113
11.5 FALLGRUBEN 114
11.5.1 FALSCHE GLEICHHEITSUEBERPRUEFUNG 114
11.5.2 KEINE UNNOETIGE AUSWERTUNG RECHTS VON && UND I I. . . . 115
11.5.3 VERGLEICHE VON NEGATIVEN ZAHLEN MIT UNSIGNED-VARIABLEN . . 116
11.5.4 HOHE PRIORITAET DES NEGATIONS-OPERATORS ! 116
11.6 PROGRAMMIERTECHNIKEN 117
11.6.1 IF-KASKADEN 117
12 DIE BEDINGTE BEWERTUNG ?: 119
13 DIE SWITCH-ANWEISUNG 121
13.1 DIE SWITCH-ANWEISUNG 121
13.2 FALLGRUBE: CASE-MARKEN MUESSEN GANZZAHLIGE KONSTANTEN SEIN . . . 125
13.3 TIPPS 126
13.3.1 ALLE CASE-MARKEN (AUCH LETZTE) MIT BREAK ABSCHLIESSEN . .. 126
13.3.2 DEFAULT IMMER ANGEBEN 126
14 DER KOMMA-OPERATOR 127
14.1 DER KOMMA-OPERATOR 127
14.2 KOMMA-OPERATOR HAT DIE NIEDRIGSTE PRIORITAET 128
VIII
IMAGE 5
INHALTSVERZEICHNIS
15 DIE FOR-ANWEISUNG 129
15.1 DIE FOR-ANWEISUNG 129
15.2 DIE FOR-SCHLEIFE U ND DER KOMMA-OPERATOR 133
15.3 FALLGRUBE: SEMIKOLON AM ENDE DES FOR-SCHLEIFENKOPFS 136
15.4 GESCHACHTELTE SCHLEIFEN 137
15.5 EINE ENDLOSE FOR-SCHLEIFE 143
15.6 FOR BEI DURCHLAEUFEN MIT FESTEN SCHRITTWEITEN 143
15.7 VARIABLENDEKLARATION IM FOR-SCHLEIFENKOPF (NEU IN C99) . . .. 146
15.8 PROGRAMMIERTECHNIKEN 146
15.8.1 ANHALTEN EINER BILDSCHIRMAUSGABE 146
15.8.2 ZEILENVORSCHUEBE BEI GESCHACHTELTEN SCHLEIFEN 149
15.8.3 KOMBINIEREN MIT FOR-SCHLEIFEN 150
15.8.4 ZWISCHENINFORMATIONEN BEI RECHENINTENSIVEN PROGRAMMEN . . 152
15.8.5 MERKER IN FOR-SCHLEIFEN BEI EINTRETEN VON EREIGNISSEN . . . 153
15.9 FALLGRUBEN 154
15.9.1 NIEMALS DIE LAUFVARIABLE IM SCHLEIFENKOERPER AENDERN . . . 154
15.9.2 GLEITPUNKTZAHLEN NIEMALS AUF GLEICHHEIT PRUEFEN . . .. 157
15.9.3 LAUFVARIABLE EINER FOR-SCHLEIFE LAEUFT UEBER ENDWERT HINAUS . . 159
16 DIE WHILE-ANWEISUNG 161
16.1 DIE WHILE-ANWEISUNG 161
16.2 PROGRAMMIERTECHNIKEN 163
16.2.1 WHILE BEI UNBEKANNTER ZAHL VON SCHLEIFENDURCHLAEUFEN . . . 163
16.2.2 KONSISTENZPRUEFUNGEN BEI EINGABEN 165
16.2.3 DIE KONSTANTE EOF 166
16.2.4 MINIMUM U ND MAXIMUM IN EINER ZAHLENFOLGE 167
16.3 ZUFALLSZAHLEN IN C 168
17 DIE DO...WHILE-ANWEISUNG 175
17.1 DIE DO...WHILE-ANWEISUNG 175
17.2 PROGRAMMIERTECHNIKEN 177
17.2.1 DO. ..WHILE-SCHLEIFEN NICHT SO OFT WIE WHILE-SCHLEIFEN . . . 177
17.2.2 ABSCHLIESSENDES } WHILE IMMER IN EINER ZEILE . . .. 178
18 DIE BREAK-ANWEISUNG 179
18.1 DIE BREAK-ANWEISUNG 179
18.2 BREAK BEWIRKT VERLASSEN EINER SCHLEIFENEBENE 180
18.3 PROGRAMMIERTECHNIKEN 180
IX
IMAGE 6
INHALTSVERZEICHNIS
18.3.1 SOFORTIGES VERLASSEN VON SCHLEIFEN UND SWITCH 180
18.3.2 ENDLOSSCHLEIFEN UND BREAK 182
19 DIE CONTINUE-ANWEISUNG 183
19.1 DIE CONTINUE-ANWEISUNG 183
19.2 PROGRAMMIERTECHNIKEN 184
19.2.1 CONTINUE NUR IM AEUSSERSTEN NOTFALL . . . . . . .. 184
19.2.2 KORREKTE PROGRAMME MUESSEN AUCH SCHNELL SEIN 185
19.3 DATUMS- UND ZEITANGABEN ( TIME.H ) 189
19.3.1 KONSTANTEN UND DATENYTPEN 189
19.3.2 FUNKTIONEN 189
19.3.3 BEISPIELE ZU FUNKTIONEN AUS TIME.H 192
20 MARKEN UND DIE GOTO-ANWEISUNG 197
20.1 MARKEN UND DIE GOTO-ANWEISUNG 197
20.2 PROGRAMMIERTECHNIKEN 197
20.2.1 GOTO NUR IM AEUSSERSTEN NOTFALL 197
20.2.2 LESBARERE UND SCHNELLERE PROGRAMME MIT GOTO 198
21 GRAFIKPROGRAMMIERUNG UNTER LINUX 199
21.1 BENUTZUNG VON LCGI 199
21.2 GRAFIKMODUS EIN-UND AUSSCHALTEN 200
21.3 EINGABEN IM GRAFIKMODUS 200
21.4 BILDSCHIRM-, FARBEN-UND PIXEL-OPERATIONEN 204
21.5 POSITIONIEREN, LINIEN ZEICHNEN UND FARBE EINSTELLEN 207
21.6 FIGUREN ZEICHNEN UND AUSFUELLEN 209
21.7 EINSTELLUNGEN FUER TEXTAUSGABEN 215
21.8 BILDER LADEN, BILD TEILE SPEICHERN UND EINBLENDEN 217
21.9 KUCHENSTUECKE MALEN 220
21.10GRAFIKPAKET NEU BZW. ANDERS EINRICHTEN 222
21.11 ARBEITEN MIT MEHREREN ZEICHENFENSTERN 223
21.12PROGRAMMIERUNG DER MAUS 223
21.13TRANSFORMATION MATHEMATISCHER KOORDINATEN 226
22 FUNKTIONEN 231
22.1 ALLGEMEINES ZU FUNKTIONEN 231
22.1.1 ALLGEMEINES BEISPIEL ZU FUNKTIONEN 231
22.1.2 DIE BEGRIFFE PARAMETER UND ARGUMENTE 233
IMAGE 7
INHALTSVERZEICHNIS
22.1.3 BIBLIOTHEKEN UND HEADERDATEIEN 233
22.2 ERSTELLEN EIGENER FUNKTIONEN 234
22.2.1 DEFINITION VON FUNKTIONEN IN C89/C99 234
22.2.2 DEFINITION VON FUNKTIONEN IN ALT-C 237
22.2.3 DIE RETURN-ANWEISUNG 238
22.2.4 FUNKTIONEN OHNE RUECKGABEWERT 238
22.2.5 FORWARD-DEKLARATIONEN 239
22.2.6 FUNKTIONS-PROTOTYPEN 242
22.2.7 IMPLIZITE DATENTYPUMWANDLUNG BEIM FUNKTIONSAUFRUF . . . 246
22.2.8 TYPISCHE ANWENDUNGSGEBIETE VON FUNKTIONEN 248
22.3 DIE PARAMETER VON FUNKTIONEN 253
22.3.1 LEERE PARAMETERLISTE DURCH ANGABE VON VOID 253
22.3.2 BEI FUNKTIONSAUFRUFEN FINDET NUR WERTUEBERGABE STATT . .. 253
22.3.3 CALL BY REFERENCE 258
22.3A AUSWERTUNG DER ARGUMENTE FINDET VOR FUNKTIONSAUFRUF STATT . . 260
22.3.5 FALLGRUBEN 261
22.4 ELLIPSEN-PROTOTYPEN FUER FUNKTIONEN MIT VARIABLER ARGUMENTZAHL . .
263
22.4.1 REIHENFOLGE DER ARGUMENT-ABLAGE IM STACK 263
22.4.2 ELLIPSEN-PROTOTYPEN 264
22.4.3 ABARBEITEN VARIABEL LANGER ARGUMENTLISTEN 264
22.4.4 VERFAHREN ZUM ABARBEITEN VARIABEL LANGER ARGUMENTLISTEN . . 265
22.4.5 FALLGRUBEN 269
22.5 NEUHEITEN IN C99 270
22.5.1 INLINE-FUNKTIONEN 270
22.5.2 DER VORDEFINIERTE NAME FUNC 271
22.5.3 KEINE UNTERSTUETZUNG VON IMPLIZITEM INT 272
22.5.4 KEINE IMPLIZITEN FUNKTIONSDEKLARATIONEN 272
22.5.5 EINSCHRAENKUNGEN BEI RETURN 272
22.6 REKURSIVE FUNKTIONEN 273
22.6.1 ALLGEMEINES ZU REKURSIVEN FUNKTIONEN 273
22.6.2 EINIGE TYPISCHE ANWENDUNGEN FUER DIE REKURSION . . .. 276
22.7 ZEIGER AUF FUNKTIONEN 280
22.7.1 ZEIGER AUF FUNKTIONEN 280
22.7.2 TYPISCHE ANWENDUNGEN 283
23 SPEICHERKLASSEN UND MODULTECHNIK 287
23.1 GUELTIGKEITSBEREICH, LEBENSDAUER, SPEICHERORT 287
XI
IMAGE 8
INHALTSVERZEICHNIS
23.1.1 GUELTIGKEITSBEREICH 287
23.1.2 LEBENSDAUER 291
23.1.3 SPEICHERORT : 292
23.1.4 GUELTIGKEIT, LEBENSDAUER UND SPEICHERORT IM UEBERBLICK . . . 292
23.1.5 UEBUNG: AUSGABE DES PROGRAMMS B L O C K3 .C 293
23.2 SCHLUESSELWOERTER EXTERN, AUTO, STATIC UND REGISTER 293
23.2.1 DAS SCHLUESSELWORT EXTERN 293
23.2.2 DAS SCHLUESSELWORT AUTO 296
23.2.3 FALLGRUBE: NIEMALS ADRESSEN VON AUTO-VARIABLEN ZURUECKGEBEN . 303
23.2.4 DAS SCHLUESSELWORT STATTE 304
23.2.5 DAS SCHLUESSELWORT REGISTER 310
23.3 DIE SCHLUESSELWOERTER CONST UND VOLATILE 310
23.3.1 DAS SCHLUESSELWORT CONST 310
23.3.2 DAS SCHLUESSELWORT VOLATILE 312
23.3.3 KOMBINATION VON CONST UND VOLATILE 313
23.4 MODULTECHNIK UND INFORMATION HIDING 314
23.4.1 LINKER UND COMPILER 317
23.4.2 BEISPIEL: SIMULATION VON TUERINGMASCHINEN 319
24 PRAEPROZESSOR-DIREKTIVEN 331
24.1 BEDINGTE KOMPILIERUNG 332
24.1.1 PRAEPROZESSOR-DIREKTIVEN ZUR BEDINGTEN KOMPILIERUNG . . . 332
24.1.2 TYPISCHE ANWENDUNGEN 334
24.1.3 TESTEN MIT MAKRO ASSERT() AUS HEADERDATEI ASSERT.H . . . 339
24.2 EINKOPIEREN VON ANDEREN HEADERDATEIEN 340
24.2.1 DIE PRAEPROZESSOR-DIREKTIVE #INCLUDE 340
24.2.2 TYPISCHE ANWENDUNGEN 341
24.3 DEFINITION VON MAKROS (#DEFINE UND #UNDEF) 342
24.3.1 DEFINITION VON KONSTANTEN MIT #DEFINE 342
24.3.2 DEFINITION VON FUNKTIONSMAKROS MIT #DEFINE 343
24.3.3 OPERATOR #: ERSETZUNG VON MAKROPARAMETERN DURCH STRING . . 345
24.3.4 OPERATOR ##: ZUSAMMENSETZEN NEUER NAMEN 346
24.3.5 REKURSIVE MAKRODEFINITIONEN 346
24.3.6 MAKROS MIT VARIABLER ANZAHL VON ARGUMENTEN (NEU IN C99) . . 348
24.3.7 MAKRODEFINITIONEN MIT #UNDEF WIEDER AUFHEBEN . . .. 349
24.3.8 UNTERSCHIEDE ZWISCHEN FUNKTIONEN UND MAKROS . . .. 349
24.4 VOERDEFINIERTE MAKRONAMEN 353
XII
IMAGE 9
INHALTSVERZEICHNIS
24.5 DIE RESTLICHEN PRAEPROZESSOR-DIREKTIVEN 354
24.5.1 #LINE - FESTLEGEN EINER NEUEN ZEILENNUMERIERUNG . . . * . 354
24.5.2 #ERROR - AUSGEBEN VON FEHLERMELDUNGEN 355
24.5.3 #PRAGMA - FESTLEGEN VON COMPILERSPEZIFISCHEM VERHALTEN . . 355
24.5.4 # - D IE NULL-DIREKTIVE 355
25 ZEIGER UND ARRAYS 357
25.1 EINDIMENSIONALE ARRAYS 357
25.1.1 EINDIMENSIONALE ARRAYS 357
25.1.2 N UR STATISCHE ARRAYS ERLAUBT (IN C89) 361
25.1.3 VON ARRAYS BELEGTER SPEICHERPLATZ 362
25.1.4 FALLGRUBEN 363
25.2 MEHRDIMENSIONALE ARRAYS 365
25.2.1 ZWEIDIMENSIONALE ARRAYS 365
25.2.2 DREI-, VIER-, FUENF- U ND SONSTIGE MEHRDIMENSIONALE ARRAYS . . 373
25.2.3 SIZEOF LIEFERT DIE GROESSE EINES ARRAYS 373
25.3 ZUSAMMENHAENGE ZWISCHEN ARRAYS UND ZEIGERN 374
25.3.1 ARRAYNAME IST KONSTANTER ZEIGER AUF ERSTES ELEMENT . . .. 374
25.3.2 ZUGRIFF AUF ARRAYELEMENTE IST AUCH UEBER ZEIGER MOEGLICH . . . 377
25.3.3 UNTERSCHIED ZWISCHEN ARRAYNAMEN U ND ECHTEM ZEIGER . . . 380
25.3.4 ERLAUBTE OPERATIONEN MIT ZEIGERN 381
25.3.5 UNERLAUBTE OPERATIONEN MIT ZEIGERN 381
25.3.6 UEBERGABE EINES ARRAYS AN EINE FUNKTION MITTELS ADRESSE . . . 384
25.3.7 CALL BY VALUE FUER ARRAYS (ZEIGER) 388
25.3.8 NACHLESE ZU ARRAYS U ND ZEIGER 389
25.3.9 ALGORITHMUS: DER BUBBLE-SORT 389
25.3.10 VERWENDUNG DER BIBLIOTHEKSFUNKTION QSORT() 390
25.4 STRINGS U ND CHAR-ZEIGER 392
25.4.1 BESONDERHEITEN VON C-STRINGS 392
25.4.2 DAS SCHLUESSELWORT RESTRICT FUER ZEIGER (NEU IN C99) . . .. 394
25.4.3 EIGENE REALISIERUNG DER FUNKTION STRCPY() MIT ARRAYS . . . 394
25.4.4 EIGENE REALISIERUNG DER FUNKTION STRCPYO MIT ZEIGERN . . . 395
25.4.5 DIE HEADERDATEI STRING.H 398
25.4.6 UMWANDELN VON STRINGS IN NUMERISCHE WERTE 413
25.4.7 UMWANDELN VON NUMERISCHEN WERTEN IN STRINGS . . .. 419
25.4.8 BESONDERHEITEN BEIM EINLESEN VON STRINGS MIT SCANF() . . . 421
25.4.9 EIN- U ND AUSGABE VON STRINGS MIT GETSQ U ND PUTS() . . .. 422
XIII
IMAGE 10
INHALTSVERZEICHNIS
25.4.10 UNTERSCHIED ZWISCHEN ZEIGER- U ND ARRAY-DEKLARATION . . . 423
25.4.11 DIREKTER ZUGRIFF AUF ZEICHEN IN EINER STRING-KONSTANTE . . . 425
25.5 ARRAY-INITIALISIERUNGEN 426
25.5.1 INITIALISIERUNG VON ARRAYS 426
25.5.2 DIMENSIONIERUNGSANGABEN BEI DER INITIALISIERUNG . . .. 428
25.5.3 ZEIGER AUF UNBENAMTE ARRAYS (NEU IN C99) 429
25.5.4 IMPLIZITE INITIALISIERUNG BEI STATIC-VARIABLEN/ ARRAYS . . .. 430
25.5.5 INITIALISIERUNG LOKALER VARIABLEN AUCH MIT NICHT-KONSTANTEN . .
431
25.5.6 INITIALISIERUNG V ON LOKALEN ARRAYS IN C89/C99 432
25.5.7 INITIALISIERUNG VON LOKALEN ARRAYS MIT VARIABLEN WERTEN (NEU IN
C99) 432
25.5.8 INITIALISIERUNG VON LOKALEN ARRAYS MIT 0 ODER NULL . . .. 433
25.5.9 INITIALISIERTE ARRAYS MIT CONST VOR UEBERSCHREIBEN SCHUETZEN . .
434
25.6 LOKALE ARRAYS VARIABLER LAENGE (NEU IN C99) 435
25.7 ZEIGERARRAYS U ND ZEIGER AUF ZEIGER 436
25.7.1 EINFACHE ZEIGERARRAYS 436
25.7.2 ZEIGER AUF ARRAYS 437
25.7.3 VERTAUSCHEN V ON ZWEI ARRAYS UEBER ZEIGER 438
25.7.4 UEBERGABE VON ARRAYS AN FUNKTIONEN 440
25.7.5 ZEIGER-ZEIGER 441
25.7.6 UNTERSCHIEDE BEI ZWEIDIMENSIONALEN ARRAYS U ND ZEIGERARRAYS . 442
25.7.7 ZUGRIFF AUF BELIEBIGE ELEMENTE IN EINEM ZEIGERARRAY . . . 445
25.7.8 ZEIGERARRAYS MIT FUNKTIONSADRESSEN 451
26 ARGUMENTE AUF DER KOMMANDOZEILE 453
26.1 DIE PARAMETER ARGE U ND ARGV DER FUNKTION MAIN() 453
26.2 OPTIONEN AUF DER KOMMANDOZEILE 456
27 DYNAMISCHE SPEICHER-RESERVIERUNG UND -FREIGABE 463
27.1 NACHTEILE VON STATISCHEN ARRAYS 463
27.1.1 GEFAHR DER SPEICHERUEBERSCHREIBUNG 464
27.1.2 SPEICHERPLATZVERGEUDUNG 465
27.2 SPEICHER RESERVIEREN MIT MALLOC() 466
27.2.1 DIE FUNKTION MALLOCO 466
27.2.2 DYNAMISCHE ARRAYS FUER BELIEBIGE DATENTYPEN 470
27.2.3 KONVERTIERUNG V ON VOID-ZEIGERN 473
27.3 SPEICHER RESERVIEREN U ND INITIALISIEREN MIT CALLOC() 474
27.4 G R OE SS E N AE N D E R U NG EINES ALLOZIERTEN SPEICHERS MIT REALLOCQ
. . .. 475
XIV
IMAGE 11
INHALTSVERZEICHNIS
27.4.1 DIE FUNKTION REALLOCO 475
27.4.2 BESONDERHEITEN DER FUNKTION REALLOCO 478
27.4.3 SCHNELLERE PROGRAMME MIT GROESSEREN SPEICHERBLOECKEN . . . 479 27.5
FREIGEBEN VON DYNAMISCH RESERVIERTEN SPEICHERBEREICH . . .. 481
27.5.1 DIE FUNKTION FREE() 481
27.5.2 FALLGRUBE: FREE() SETZT UEBERGEBENEN ZEIGER NICHT AUF NULL . . 481
27.5.3 TIPP: EIGENES MAKRO ZUR FREIGABE VON DYNAMISCHEN SPEICHER . . 483
27.6 FALLGRUBEN 484
27.6.1 FREE() NUR AUF VON MALLOC(), CALLOC() UND REALLOC() GELIEFERTE
ZEIGER . 484 27.6.2 ALLOZIEREN VON SPEICHERPLATZ IN EINER FUNKTION 485
27.7 PROGRAMMIERTECHNIK: DYNAMISCHE ZEIGER-ARRAYS 488
27.8 FALLGRUBE: FREE() BEI ZEIGER-ARRAYS 489
28 STRUKTUREN 491
28.1 DEKLARATION UND DEFINITION VON STRUKTUREN 491
28.1.1 DEKLARATION VON STRUKTUREN 491
28.1.2 WICHTIGE REGELN UND HINWEISE FUER STRUKTURDEKLARATIONEN . . 492
28.1.3 DEFINITION VON STRUKRURVARIABLEN 493
28.1.4 ZUSAMMENFASSUNG VON STRUKTURDEKLARATION UND-DEFINITION . . 494
28.1.5 NAMENLOSE STRUKTUREN 495
28.2 OPERATIONEN MIT STRUKTURVARIABLEN 496
28.2.1 ZUGRIFF AUF STRUKTURKOMPONENTEN MITTELS PUNKTOPERATOR . . . 496
28.2.2 ZUWEISUNG ZWISCHEN STRUKTURKOMPONENTEN 497
28.2.3 ZUWEISUNG GANZER STRUKTURVARIABLEN 502
28.2.4 VERGLEICH VON STRUKRURVARIABLEN IST NICHT MOEGLICH . . .. 502
28.2.5 CASTING FUER KOMPLETTE STRUKTURVARIABLE IST NICHT MOEGLICH . . .
503
28.2.6 ADRESS- UND SIZEOF-OPERATOR FUER STRUKTURVARIABLEN ERLAUBT . . 503
28.3 INITIALISIERUNG VON STRUKTURVARIABLEN 504
28.3.1 INITIALISIERUNG VON STRUKTURVARIABLEN IN C89 UND C99 . .. 504
28.3.2 INITIALISIERUNG VON STRUKTURVARIABLEN (NUR IN C99) . . .. 505
28.4 STRUKTURARRAYS 507
28.5 STRUKTUREN ALS FUNKTIONSPARAMETER 514
28.6 ZEIGER UND STRUKTUREN 516
28.6.1 ALLGEMEINES ZU ZEIGER UND STRUKTUREN 516
28.6.2 DYNAMISCHE STRUKTURARRAYS 522
28.6.3 REKURSIVE STRUKTUREN 529
28.7 STRUKTUREN MIT VARIABEL LANGEN ARRAYS (NEU IN C99) 558
XV
IMAGE 12
INHALTSVERZEICHNIS
28.8 SPEZIELLE STRUKTUREN (UNIONS UND BITFELDER) 559
28.8.1 UNIONS 559
28.8.2 BITFELDER 564
29 EIGENE DATENTYPEN 569
29.1 DEFINITION EIGENER DATENTYPNAMEN MIT TYPEDEF 569
29.1.1 VERGABE NEUER NAMEN AN EXISTIERENDE DATENTYPEN MIT TYPEDEF . 569
29.1.2 HOEHERE PORTABILITAET UND BESSERE LESBARKEIT DURCH TYPEDEF . . 572
29.2 DEFINITION EIGENER DATENTYPEN MIT ENUM 573
29.2.1 DEFINITION EIGENER DATENTYPEN MIT ENUM 573
29.2.2 REGELN FUER ENUM 575
30 DATEIEN 577
30.1 HOEHERE E/A-FUNKTIONEN 577
30.1.1 VORDEFINIERTE STRUKTUR FILE 578
30.1.2 OEFFNEN UND SCHLIESSEN VON DATEIEN 578
30.1.3 LESEN UND SCHREIBEN IN DATEIEN 580
30.1.4 UNTERSCHIED ZWISCHEN TEXT- UND BINAERMODUS 596
30.1.5 POSITIONIEREN IN DATEIEN 598
30.1.6 OEFFNEN EINER DATEI MIT EXISTIERENDEN STREAM 601
30.1.7 LOESCHEN UND UMBENENNEN VON DATEIEN 603
30.1.8 PUFFERUNG 603
30.1.9 TEMPORAERE DATEIEN 605
30.1.10 AUSGABE VON SYSTEM-FEHLERMELDUNGEN 608
31 ANHANG 613
31.1 PRIORITAETSTABELLE FUER DIE OPERATOREN 613
31.2 C-SCHLUESSELWOERTER 613
31.3 WERTEBEREICHE FUER DIE EINZELNEN DATENTYPEN 614
31.4 DIE FUNKTION PRINTFO 615
31.5 DIE FUNKTION SCANF() 617
31.6 ASCII-TABELLE 619
XVI
|
any_adam_object | 1 |
author | Herold, Helmut 1956- Arndt, Jörg 1964- |
author_GND | (DE-588)122454340 (DE-588)142015806 |
author_facet | Herold, Helmut 1956- Arndt, Jörg 1964- |
author_role | aut aut |
author_sort | Herold, Helmut 1956- |
author_variant | h h hh j a ja |
building | Verbundindex |
bvnumber | BV039650432 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)760139817 (DE-599)DNB1015390722 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 3., aktualisierte Aufl. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01706nam a2200421 c 4500</leader><controlfield tag="001">BV039650432</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20140120 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">111020s2011 gw ad|| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">11,N39</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1015390722</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783938626221</subfield><subfield code="c">Pb. : EUR 39.90 (DE), EUR 41.10 (AT)</subfield><subfield code="9">978-3-938626-22-1</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783938626221</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)760139817</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1015390722</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-NW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-739</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-1046</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Herold, Helmut</subfield><subfield code="d">1956-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)122454340</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">C-Programmierung unter Linux/UNIX/Windows</subfield><subfield code="b">Beispiele, Anwendungen, Programmiertechniken</subfield><subfield code="c">Helmut Herold ; Jörg Arndt</subfield></datafield><datafield tag="246" ind1="1" ind2="3"><subfield code="a">C-Programmierung unter Linux, Unix, Windows</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3., aktualisierte Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Lohmar</subfield><subfield code="b">Millin</subfield><subfield code="c">2011</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVI, 628 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4113195-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">C</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4113195-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Arndt, Jörg</subfield><subfield code="d">1964-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)142015806</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024500117&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-024500117</subfield></datafield></record></collection> |
id | DE-604.BV039650432 |
illustrated | Illustrated |
indexdate | 2024-07-10T00:08:16Z |
institution | BVB |
isbn | 9783938626221 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-024500117 |
oclc_num | 760139817 |
open_access_boolean | |
owner | DE-739 DE-83 DE-859 DE-573 DE-634 DE-523 DE-1051 DE-92 DE-29T DE-1046 |
owner_facet | DE-739 DE-83 DE-859 DE-573 DE-634 DE-523 DE-1051 DE-92 DE-29T DE-1046 |
physical | XVI, 628 S. Ill., graph. Darst. |
publishDate | 2011 |
publishDateSearch | 2011 |
publishDateSort | 2011 |
publisher | Millin |
record_format | marc |
spelling | Herold, Helmut 1956- Verfasser (DE-588)122454340 aut C-Programmierung unter Linux/UNIX/Windows Beispiele, Anwendungen, Programmiertechniken Helmut Herold ; Jörg Arndt C-Programmierung unter Linux, Unix, Windows 3., aktualisierte Aufl. Lohmar Millin 2011 XVI, 628 S. Ill., graph. Darst. txt rdacontent n rdamedia nc rdacarrier C Programmiersprache (DE-588)4113195-2 gnd rswk-swf C Programmiersprache (DE-588)4113195-2 s DE-604 Arndt, Jörg 1964- Verfasser (DE-588)142015806 aut DNB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024500117&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Herold, Helmut 1956- Arndt, Jörg 1964- C-Programmierung unter Linux/UNIX/Windows Beispiele, Anwendungen, Programmiertechniken C Programmiersprache (DE-588)4113195-2 gnd |
subject_GND | (DE-588)4113195-2 |
title | C-Programmierung unter Linux/UNIX/Windows Beispiele, Anwendungen, Programmiertechniken |
title_alt | C-Programmierung unter Linux, Unix, Windows |
title_auth | C-Programmierung unter Linux/UNIX/Windows Beispiele, Anwendungen, Programmiertechniken |
title_exact_search | C-Programmierung unter Linux/UNIX/Windows Beispiele, Anwendungen, Programmiertechniken |
title_full | C-Programmierung unter Linux/UNIX/Windows Beispiele, Anwendungen, Programmiertechniken Helmut Herold ; Jörg Arndt |
title_fullStr | C-Programmierung unter Linux/UNIX/Windows Beispiele, Anwendungen, Programmiertechniken Helmut Herold ; Jörg Arndt |
title_full_unstemmed | C-Programmierung unter Linux/UNIX/Windows Beispiele, Anwendungen, Programmiertechniken Helmut Herold ; Jörg Arndt |
title_short | C-Programmierung unter Linux/UNIX/Windows |
title_sort | c programmierung unter linux unix windows beispiele anwendungen programmiertechniken |
title_sub | Beispiele, Anwendungen, Programmiertechniken |
topic | C Programmiersprache (DE-588)4113195-2 gnd |
topic_facet | C Programmiersprache |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024500117&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT heroldhelmut cprogrammierungunterlinuxunixwindowsbeispieleanwendungenprogrammiertechniken AT arndtjorg cprogrammierungunterlinuxunixwindowsbeispieleanwendungenprogrammiertechniken AT heroldhelmut cprogrammierungunterlinuxunixwindows AT arndtjorg cprogrammierungunterlinuxunixwindows |