Motivation für die Entwicklung der Sprache C war die Existenz des UNIX R Betriebssystems,

Größe: px
Ab Seite anzeigen:

Download "Motivation für die Entwicklung der Sprache C war die Existenz des UNIX R Betriebssystems,"

Transkript

1 Vorwort Motivation für die Entwicklung der Sprache C war die Existenz des UNIX R Betriebssystems, das ab bekannt wurde. Es sollte erreicht werden, daß UNIX auf andere Prozessoren portiert werden konnte, ohne jedesmal das Betriebssystem vollständig in Assembler neu schreiben zu müssen, sondern eher nur zu 5 %. Die Kommandos dieses Betriebssystems konnten dann gänzlich ohne Neuprogrammierung erzeugt werden einfach durch Kompilierung. Deshalb ist bis heute traditionell ein C-Entwicklungssystem für jedes UNIX-System vorhanden. Oft ist es ohne C gar nicht erhältlich. Lehrgrundlage für dieses Buch waren die beiden Bücher Programmieren in C [5] der Autoren Kernighan/Ritchie, wobei Dennis M. Ritchie eher der Erfinder der Sprache C und Brian W. Kernighan eher der Buchautor ist. Diese Bücher gelten als C-Bibel und werden in der C-Szene mit K&R1 und K&R2 bezeichnet. Die Sprache C im Sinne dieser Bücher wird K&R-C bzw. ANSI-C genannt. Ein K&R3 aufgrund des neuen C-Standards von 1999 ist leider nicht in Sicht. Vielleicht ist dieses Buch ein gewisser Ersatz dafür. Die Sprache C war 1974 fertig entwickelt. Das englische Original des Buches K&R1 erschien dann Ab 1983 gab es Standardisierungsbemühungen, die zum ANSI- Standard C89 und dann auch zum internationalen Standard ISO/IEC C90 führten. Am 1.Dez.1999 wurde der nun aktuelle C-Standard C99 veröffentlicht, der bis dahin mit C9X bezeichnet wurde. Der aktuelle Standard [4] wurde als Informationsquelle bei der Erstellung dieses Buches benutzt. Beispielkode wurde einem früheren Entwurf des Standards [3] entnommen. 1 Ein Zeitstempelwert von 0 s unter UNIX ergibt: :00:00

2 VI Vorwort Der C-Standard ist ein englischsprachiges Dokument mit etwa 560 Seiten, das die Sprache C in einer Art juristischen Vertragssprache beschreibt, sich eher an Entwickler von Compilern wendet und somit als Lehrbuch oder Tutorial/Kompendium ungeeignet ist. Es wird daher auch nicht daraus zitiert. Bei Befragungen von Dennis Ritchie 2 sagte dieser beispielsweise auf die Frage, wie ihm der neue C-Standard C99 gefällt, daß ihm der alte Standard C89 gefiel. Er hätte sich gewünscht, daß das Komitee mehr Standhaftigkeit gezeigt hätte gegenüber den vielen Vorschlägen neuer C99 Merkmale. Er kritisiert den beträchtlich gesteigerten Umfang des neuen Standards, und beispielsweise den neuen Typ _Complex, der in Folge die Libraries sehr aufbläht. Es existiert Ende 2004, fünf Jahre nach Veröffentlichung von C99, auch kein einziger C-Compiler, der C99 zu 100 % unterstützt. Bei dieser Bewertung muß bedacht werden, daß ja alle Bibliotheken und alle Header-Dateien gemäß C99 dabei sein müssen. Aber zum Glück unterstützen einige Compiler C99 annähernd zu 100 %. Darunter auch der sehr bekannte gcc. C99 ist zwar kein Flop, aber die Stimmung darüber ist bedeckt. Dieses Buch wendet sich an Leser, die bereits programmieren können und C oder eine andere Programmiersprache ausreichend (oder besser) beherrschen. Unter dieser Voraussetzung ist es sicher möglich, C anhand dieses Buches zu erlernen oder seine Kenntnisse (stark) zu verbessern. Es liegt die Erfahrung vor, daß wenn Programmierer mit einiger Vorerfahrung eine weitere, für sie neue Programmiersprache erlernen wollen, sie diese neue Sprache möglichst schnell erfassen wollen, mit Hilfe von kompakten aber vollständigen Listen, Tabellen und ähnlichen Darstellungsformen nebst Erklärungen in Kurzform, begleitet von Kodebeispielen. Dieses Buch stellt darauf ab und bietet im Teil I auf etwa 40 Seiten diese Möglichkeit, wobei gleichzeitig eine Referenz gegeben ist. Dieses Buch basiert auf einem Dokument [1], das seit Januar 2000 als Webseite im Internet existiert und dort außerordentlich beliebt ist. Es erreichten den Verfasser -zuschriften, die genau die zuvor beschriebene Kompaktheit, die Listen, die Tabellen, den daraus resultierenden schnellen Zugriff und die gleichzeitige relative Vollständigkeit lobten. Ebenso wurde die Kommandoliste zum Editor vi kommentiert (Anhang) [2]. Dieses papierne Buch setzt da noch einen drauf, indem es besser gegliedert, umfangreicher, noch sorgfältiger geschrieben und fehlerfreier ist. 2 Dennis Ritchie prägte auch sehr wesentlich die Entwicklung von UNIX.

3 Vorwort VII Der C-Standard verwendet ein Vokabular, das in einem Lernbuch nicht dienlich wäre, wie beispielsweise Übersetzungseinheit für C-Datei, Übersetzer für Compiler, Basisausführungszeichensatz für Zeichensatz, und so weiter. In diesem Buch hingegen werden allgemein übliche Begriffe verwendet, wie sie in der täglichen Praxis anzutreffen sind ( S. 203). Im Zusammenhang mit Programmierung gibt es einige Abhängigkeiten von der verwendeten Plattform (Prozessor, Betriebssytem). In diesem Buch wird nötigenfalls von der gängigsten Plattform ausgegangen, nämlich INTEL ix86. Das ist u. a. bei konkreten Zahlenbeispielen und Bitrepräsentationen oft unvermeidbar. Die Sprache C ist allerdings mit großem Abstand die portabelste Programmiersprache überhaupt, so daß in der Programmierpraxis mit C kaum unterschiedlich programmiert werden muß, um verschiedene Plattformen zu bedienen. Desweiteren ist C generell wohl die am weitesten verbreitete Programmiersprache. Entwicklungssysteme für Mikrokontroller haben nahezu ausnahmslos C-Compiler. Eine andere Tendenz ist nicht in Sicht. Das wäre auch Unfug, denn für die Programmierung von Betriebssystemen, deren Kommandos und die Millionen von Programmen für Mikrokontroller ist eine eher wenig abstrahierende Sprache wie C auch am geeignetsten. C ist wegen ihrer Feinkörnigkeit, Rekursivität, Flexibilität und Ressourcenschonung für die zuvor aufgeführten Anwendungsgebiete einfach ideal. Es können aber auch alle anderen Gebiete gut bis ausreichend mit C bedient werden, besonders wenn es auf Ressourcenschonung und maximale Effizienz ankommt. Wenn es darauf nicht ankommt, sind manche anderen Programmiersprachen komfortabler und sicherer. Das Manuskript zu diesem Buch wurde hergestellt mit: dem Editor gvim, dem vom Verfasser selbst entwickelten Skript-Interpreter bsh und L A TEX. UNIX-Betriebssystem war FREEBSD V4.11 mit Programmpaket tetex-3.0. Die Buch-CD enthält eine.html-datei mit den Kodeabschnitten des Buches in Farbe. Ebenso eine.txt-datei. Bad Salzuflen, November 2004 Helmut O. B. Schellong

4

5 Inhaltsverzeichnis Teil I Erfassung der Sprache C / Referenz 1 C-Schlüsselwörter Liste der Schlüsselwörter Erklärung einiger besonderer Schlüsselwörter Elementare Datentypen Liste der Datentypen Erklärungen zu den Datentypen Punktuatoren und Operatoren Punktuatoren Operatoren Operatoren, kurz erklärt C-Zeichensatz, Konstanten, Kommentare Zeichenmenge Zahlenkonstanten Zeichenkonstanten Zeichenkettenkonstanten Kommentare Der C-Preprocessor Einführende Beispiele mit Erklärungen Auflistung von Syntaxelementen Vordefinierte Namen Ein schematisches C-Programm Minimale C-Quelltexte Programmschema Erklärungen zum Programmschema

6 X Inhaltsverzeichnis 6.4 Startkode C-Quelltexte, C-Compiler, Programm Der neue C-Standard C Vorwort Neue Merkmale Kurzbeschreibungen C-Header Initialisierungen Flexibles Array Namenlose Zuweisungsobjekte VL-Array und VM-Typ Padding-Bits und Trap-Repräsentationen Alternative Schreibweisen Teil II Eingehende Beschreibung der Merkmale 9 Einleitung Vorurteile Automatische Umwandlungen Adressen (Zeiger, Pointer) Adressen der Objekte Addition, Subtraktion und Differenzbildung Sammlung von Beispielen Der NULL-Pointer Referenzen Objekte in C Arrays (Felder, Vektoren) dimensionales Array dimensionales Array dimensionales Array Sammlung von Beispielen Zeichenketten-Arrays Strukturen Unionen Bitfelder Enumerationen Funktionen Funktions-Adressen Variadische Funktionen Rekursion bei Funktionen Quicksort rekursiv

7 Inhaltsverzeichnis XI Quicksort nichtrekursiv Initialisierungen Speicherklassen Steuerung des Programmablaufes Anweisungsblöcke {... } if-anweisung for-schleife while-schleife do-while-schleife switch Fallunterscheidung Sprunganweisungen Ausdrücke Beispiel switch Komplexe Typen Sequenzpunkt-Regeln Teil III C in der Praxis 17 Moderne C-Programmierung Hinweise, Anregungen, Finessen Portabilität Automatische Skalierung Struktur Makros Optimierung & Verschiedenes Hilfsprogramme C Beautifier Stil //*Kommentare*/ Editor gvim (Syntax-Einfärbung) Reguläre Ausdrücke in gvim Skript-Interpreter Skript-Interpreter: Shell bsh (perl) Liste bsh-kommandos Herstellung des Manuskripts Modul-Konzepte (C-Projekte) Standardkonzept und sein Dogma Quasi eine Datei Projekt-Werkzeuge Individuell einzeln Speicherzuteilung Funktion malloc()

8 XII Inhaltsverzeichnis Speicherklasse auto Spezielle sprintf für Mikrokontroller Lösung in auswegloser Situation Unmoderne C-Programmierung MISRA (-C) Verbote und Mißbilligungen Beweisführung wider die MISRA-Regeln Fazit Anhang A Allgemein zu diesem Buch A.1 Begriffe, kurz erklärt A.2 Hinweise B Die ANSI-Library B.1 Kurzbeschreibung einiger Funktionen B.2 Kurzübersicht ANSI-Standard-Bibliothek C Die POSIX-Library C.1 Kurzbeschreibung einiger Funktionen C.2 Kurzübersicht POSIX-Funktionen D Verschiedenes D.1 C im Vergleich D.2 Hinweise / Wissenswertes / Tricks D.3 Wünsch dir was D.4 Reguläre Ausdrücke D.5 Kurzbeschreibung vi-kommandos E C E.1 Zeichentabelle Literaturverzeichnis Sachverzeichnis

9 Teil I Erfassung der Sprache C / Referenz

10

11 1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-<Header> eingeführte Bezeichner. 1.1 Liste der Schlüsselwörter Typen von Datenobjekten char short int long float double void unsigned signed struct union enum typedef Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen Beliebig zusammengesetzter Typ (Struktur) Auswahltyp/Vereinigungstyp Aufzählungstyp (Enumeration; Integer) Individuelle Typvereinbarung Byte-Anzahl von Daten-Objekten und -Typen sizeof Beispiele: sizeof(int), sizeof i

12 4 1 C-Schlüsselwörter Speicherklassen von (Daten-)Objekten auto register static extern Voreinstellung in Funktionen (Möglichst) ein Prozessor-Register verwenden Name/Symbol wird nicht exportiert; statisch Objekt (public), von außen her bekanntmachen Typqualifizierer von Daten-Objekten const volatile Nach Initialisierung read-only Keine Optimierung/Stets Direktzugriff Programmierung des Ablaufes if else while for do switch case default break continue goto return Bedingte Verzweigung (falls ja) Bedingte Verzweigung (falls nein) Schleife Schleife Schleife (do-while) Fallunterscheidung (case) Fallunterscheidung (Fallzweig) Fallunterscheidung (default-case) Hinaussprung: Schleife/switch Fortsetzungssprung in Schleifen Allgemeiner unbedingter Sprung Beenden einer Funktion (Rücksprung) Neuer C-Standard C99 inline Funktionen Inline restrict Privater Speicherbereich für Zeiger _Bool Wertebereich {0,1} _Complex z = real + imaginär _Imaginary imaginär Die Schreibweise _Xyyy bei den neuen Schlüsselwörtern wurde wahrscheinlich so gewählt, weil beispielsweise bool als Preprocessor-Definition zuvor bereits weit verbreitet war und/oder wegen des Zusammenhangs von C und C++.

13 1.2 Erklärung einiger besonderer Schlüsselwörter Erklärung einiger besonderer Schlüsselwörter const const int ci= 16; const int *cip= adr; Hiernach sind ci= x; und *cip= x; Fehler! int * const ipc= &ci; Hiernach wäre ipc++; ein Fehler! Aber, diese Definition ist problematisch, denn (*ipc)++; wäre ja erlaubt, was aber ci ändern würde, ci ist jedoch konstant! int const * const ccip= &ci; Hiernach sind *ccip= x; und ccip= a; Fehler! extern int atoi(const char *); Optimierung möglich, da der Compiler davon ausgehen darf, daß die Funktion atoi auf das per Adresse übergebene Objekt keine Schreibzugriffe vornimmt. volatile static void sekulmination(void) { int volatile rf=0; if (setjmp(j)==1 && rf>0) return; //... if (sekul>9) rf=2, ++a; if (a) longjmp(j, 1); ErrV= rf; // cc return; } Ohne volatile hält der Compiler die Variable rf wahrscheinlich zeitweilig in einem Register und ändert sie nicht an der Stelle rf=2, sondern erst an der Stelle cc, weil sie bis dahin gar nicht gebraucht wird. Sie wird aber doch gebraucht, falls longjmp() aufgerufen wird, denn longjmp() kehrt nicht zurück, sondern springt nach setjmp(), wo rf>0 steht. Und genau das kann der Compiler nicht wissen! Mit volatile wird auf die Variable rf bei jedem Vorkommnis direkt zugegriffen. Eine weitere Fehlermöglichkeit existiert im Zusammenhang mit globalen Variablen, die laufend in Interrupt-Routinen verändert werden. ( S. 209)

14 6 1 C-Schlüsselwörter typedef Dieses Schlüsselwort gestattet die Definition eigener Typen. Komplexe Typen sind besonders einfach zu definieren durch mehrstufige Anwendung. typedef unsigned char BYTE; typedef BYTE *BYTEP; BYTE a, b=2, c, *bp=0; typedef struct _FILE_ { int cnt; // 4 unsigned char * ptr, // 8 * base, //12 flag, //13 file, //14 buf[2]; //16(Dummy) } FILE, *FILEP; extern FILE iob[]; #define stdin #define stdout #define stderr (& iob[0]) (& iob[1]) (& iob[2]) FILE *fp; fp= fopen("com2", "rb"); if (!fp) PrintErr(E_OPENF, "COM2"), exit(2); Hier wurden zuletzt die Typen FILE und FILEP definiert. Anschließend ein Array iob[] bekannt gemacht, aus Strukturen vom FILE-Typ als Elemente, das außerhalb angelegt ist, weshalb es als unvollständiger Typ angegeben wurde ([ohne Angabe]), da die Elementanzahl in der aktuellen C-Quelle unbekannt ist. Man sieht auch, daß die vordefinierten FILE-Pointer stdin, stdout, stderr, die Adressen der ersten drei Array-Elemente sind, vom Typ FILE* beziehungsweise FILEP. ( 37, 132, 210, 115) typedef int A[10][2]; A a, b; int a[10][2], b[10][2]; Es wurde ein Typ A definiert. Die beiden letzten Zeilen haben gleiche Wirkung.

15 Sachverzeichnis.code: C99, 35, 39.code: CHAR_BIT, 29, 36, 124, 184, 217.code: FAR, 132, 151, code: FILE, 6, 83, 158, 162, 164, 211, 212, 214, 225.code: SIGSEGV, 210, 222.code: Ziel-Puffer, 122.code: _Bool, 48.code: _Complex, 49.code: assert, 49, 78, 215.code: break, 10, 23, 24, 42, 45, 97, 98, 107, 108, 113, 134, 146, 151, 154, 159, 164, , 190, 192, 197, 200, 210, 238.code: continue, 107, 113, 133, 146, 148, 151, 154, 156, , , 197.code: environ, 41, 69, 102, 114, 238.code: envp, 40, 216.code: exit, 6, 41, 45, 122, 148, 149, 154, 156, 157, 160, 162, 164, 208, 226, 230, 238.code: goto, 24, 30, 74, , 113, 154, 184, 186, 187, 190, 192, 238.code: main, 37, 39 41, 54, 167.code: offsetof, 84, 201, 222.code: pragma, 34, 182, 215, 216, 221.code: restrict, 48, 217, code: signal, 49, 115, 210, 222, 234, 238.code: typedef, 6, 10, 50, 53, 64, 83, 94, 116, 132, 210.code: va_list, 93, 94, 184, 222, 225.code: va_start, 93, 94, 184, 222.code: volatile, 5, 86, 133, 169, 170, 178 Überlauf, 20, 21, 240, 242, 245 Übersetzer, VII, 142 _Bool, 4, 48, 63, 87, 248 _Complex, VI, 4, 49, 248 _Imaginary, 4, 49, 248 Abarbeitungsgeschwindigkeit, 128, 143, 205 ADA, 60 Adresse, 5, 6, 9, 14 17, 19, 24, 26, 40, 48, 54, 61, 62, 65 69, 71 73, 75 77, 79 83, 87, 90 92, 100, 102, 103, , 124, 126, 131, , 176, 177, 179, 204, 208, 214, 232, 240, 244, 245, 247 Adressenbereiche, 48 Adressensyntax, 65 Adressentyp, 9, 129, 245, 247 Adressenvariable, 48, 61, 65, 66, 71, 90, 91, 174, 208, 245 Adressenwert, 9, 65, 66, 68, 72, 208 Adressierung, 61, 66 Adressierungssystem, 62 Akkumulator, 182 Algorithmus, 39, 45, 83, 95, 98, 108, 131, 138, 139, 165, 205, 207, 239 Alias, 103 Alignment, 19, 37, 56, 71, 80, 84, 85, 87, 204, 245, 249 Alignment Check, 18, 71 alloca, 52, 179, 180 Alternativ, 77, 85, 90, 179, 196, 200, 204 Alternativkodierungen, 59, 201 Analogie, 62, 202 Anker, 251

16 272 Sachverzeichnis ANSI, V, 8, 21, 40, 47, 68, 72, 113, 200, 207, 211, 229, 242, 245, 246, 265 Anweisung, 12, 17, 23, 32, 103, , 125, 131, 134, 140, 142, 165, 181, 188, 194, 198 Anwendungsbeispiel, 54, 201 Anwendungsgebiete, VII Argument, 8, 12, 32, 33, 35, 40, 43, 63, 73, 90, 92, 98, 115, 118, , 147, 150, 164, 165, 171, 173, 177, 179, 195, 199, 209, , 261 Argumentanzahl, 73, 194, 195 Argumentbezeichner, 32 Argumentekopieren, 99 Argumentliste, 32, 40, 104 Argumenttyp, 214 Argumentwerte, 90 Array, 6, 14, 15, 19, 23, 40, 47, 48, 50 52, 54, 61, 62, 65, 68, 69, 75 79, 81 84, 91, 97, 100, 102, 109, 116, , 129, 151, 180, 201, 204, 241, ASCII, 25, 30, 114, 268 Assembler, V, 37, 44, 56, 59, 67, 80, 86, 104, 121, 128, 129, 177, 181, 182, 204, 246 Assembler-Ebene, 80, 104 assert, 35, 78 Assoziativität, 84 Aufruf, 8, 35, 37, 39, 41, 44, 90, 91, 95, 96, 98, 99, 104, 135, 163, 164, 172, 201, 209, 214, 230, 232 Aufrufargumente, 39 Aufrufer, 103, 172, 179, 180, 192 Aufrufmechanismus, 95 Aufrufname, 43 Aufrufstelle, 90, 131, 195 Aufzählungstyp, 3 Ausdruck, 9, 13, 14, 17, 18, 20, 22, 23, 27, 29, 63, 68, 76, 77, 79 81, 83, , 111, 117, 129, 133, 136, 140, 141, 148, 196, 240, Ausdruckanweisung, 111 Ausdruckresultat, 241 Ausgabe, 21, 28, 76, 151, 165, 173, 181, 203, 207, , 229, 261, 262 awk, 142 Backslash, 33, 251 Basisadresse, 69, 76, 80, 85, 177, 204 Basistyp, 80 bcc, 43, 166 Bedingte Kompilierung, 33, 114 Bedingung, 14, 21, 22, 34, 72, 78, 98, 99, 105, 106, 129, 138 Bedingungsausdruck, 12, 72, 109, 111, 138 Bedingungskette, 22 Bekanntmachung, 104 Bereichsbezüge, 251 Bereichsmarkierung, 251, 252 Berkeley, 137 Betriebssystem, V, VII, 37, 41, 71, 114, 126, 180, 181, 204, 208, 229, 239 Bezeichner, 3, 61, 101 Bibliothek, 204, 207 Binder, 104, 204 Bindung, 104, 124 Bit, 7 9, 16, 18 21, 24, 26, 29, 41, 48, 49, 54, 63, 64, 71 73, 85 87, 101, 111, 122, 123, 128, 131, 146, 168, , 182, 197, 198, 204, 231, 239, 240, 242, 243, 245, 246, 248, 249 Bit-Breite, 63, 123, 198 Bitfeld, 12, 15, 83, 86 88, 125, 199, 200, 245, 248 Bitweise, 21, 22, 245 Bjarne Stroustrup, 60 Block, 49, 101, , 109, 138, 140, 145, 180, 194, 199 Blockanfang, 52, 103, 138, 140 Blockbildung, 23 Blockende, 138 Blockklammer, 12, 103, 138, 194, 198 Booten, 71 Borland, 8, 43, 44, 229 Brian Kernighan, V, 137, 142 bsh, VI, VII, , 154, 160, 165, 205, 243 Buch, V VII, 23, 47, 138, 145, 154, 160, Buchstabe, 25, 138, 182, 241, 260 Buchteil, 176 Byte, 8, 10, 15, 18, 19, 24, 27, 29, 56, 62, 65, 67 69, 76, 80, 82, 84, 92, 96, 123, 131, 145, 171, 172, 179, 182, 183, 192, 198, 204, 209, 231, 241, 245, 248 Byte-Adressen, 24, 67, 76, 80, 245 C++, 4, 43, 48, 55, 60, 61, 73, 79, 82, 104, 135, 168, 195, 202, 205, 208,

17 Sachverzeichnis 273 C-Byte, 204 C-Compiler, VI, VII, 43, 44, 48, 59, 60, 177, 201, 204, 246 C-Datei, VII, 31, 43, 90, 136, , 166, 203 C-Funktion, 234 C-Modul, 35, 43, 101, 102, 166, 168, 203, 205 C-Standard, V VII, 47, 71, 83, 93, 96, 103, 105, 122, 127, 129, 132, 177, 183, , 205, 210, 242, 248 C-Syntax, 136, 139, 203 C89, V, VI, 47, 63, 96, 215 C90, V, 31, 215 C99, V, VI, 8, 12, 25, 26, 29, 47, 85 87, 93, 103, 109, 129, 180, 202, 205, 207, 213, 248 Call by value, 63 CHAR_BIT, 24, 29, 124, 204 COBOL, 138, 239 Compiler, VI, VII, 5, 8, 9, 19, 20, 27, 28, 31, 34, 37, 39, 41, 43 49, 59, 60, 64, 65, 71 73, 78, 82, 86 88, 90, 92, 100, , 111, 114, 121, 123, 125, , 134, 135, 142, , , , 194, 195, 199, 201, 202, 204, 209, 229, 239, 241, , 248 const, 4, 5, 27, 48, 71, 82, 100, 114, 131, 265 Datei, VI, VII, 31, 32, 39 41, 43 45, 49, 60, 90, 122, 123, 126, 133, 136, 139, 140, 142, 145, , 154, 160, , 170, 203, 204, 211, , 249, , 259, datei-lokal, 71 Dateibeginn, 231 Dateiende, 231, 258 Dateiformate, 139 Dateigröße, 231 Dateiinhalt, 32, 261 Dateilokalität, 71 Dateimodus, 230 Dateiname, 41, 51, 140, 168, 243, 244, 250, 262, 265 Dateipaar, 136 Dateiparameter, 232 Dateipositionszeiger, 211, 230, 231, 233 Dateisysteme, 229, 244 Dateityp, 232 Daten, 49, 65, 74, 85, 90, 100, 122, 126, 147, 151, 172, 177, 207, 209, 245, 249 Datenbasis, 150 Datenlänge, 122 Datenmenge, 151 Datenobjekte, 41, 71, 83, 90, 169, 170, 207 Datensatzoperationen, 239 Datenstrom, 122 Datentyp, 20, 75, 139, 240, 245 Definition, 4 6, 12, 23, 31 33, 49, 65, 75, 77, 78, 90, 100, 103, 125, 126, 130, 132, 166, 170, 203, 204 Definitionsstelle, 101, 109 Definitionszustand, 136 Deklaration, 12, 40, 49, 52, 78, 96, 103, 133, 166, 169, 203, 204 Dekrement, 17, 117 Dennis Ritchie, V, VI, 71, 137, 142 Dereferenzierung, 15, 61, 62, 73, 90, 194, 195 Dezimal, 213 Differenz, 25, 68, 176 Dimension, 75, 78 Dimensionsklammer, 78 DIN, 200 Doppelapostroph, 27 Doppelkreuz-Zeichen, 12 Doppelpunkt, 12 Doppelsemikolon, 146 Dualnotation, 129 Dualzahl, 16, 29, 183, 248 Dummy, 9, 111 dynamisch, 52, 82, 91, 96, 99, 103, 104, 139, 171, 173, 177, 179, 180, 201, 208, 209 Ebene, 66, 72, 80, 86, 94, 104, 126, 129, 178, 181, 241, 260 Editor, VI, VII, 43, 71, 121, 135, 136, , 143, 149, 150, 160, 170, , 256, 261, 263 effizient, 30, , 130, 192, 199, 201, 239, 241, 246 Effizienz, VII, 90, 96, 127, 173, 181, 199, 200, 239, 241, 248 Eingabe, 139, 140, 173, 207, 214, 215 Eingabefehler, 260 Eingabemasken, 239 Eingabezeichen, 214, 215

18 274 Sachverzeichnis Einheitlichkeit, 90, 121, 130 Einrückung, 61, 140 Einsetzstellen, 32, 33 Einsetztext, 31, 34 Einzelbitzugriffe, 85 Element, 6, 14, 15, 19, 37, 50, 67 69, 75 84, 100, 116, 133, 151, 204, 247 Elementanzahl, 6, 52 Elementarobjekte, 126 Elementartyp, 85 Elementtypen, 75 Ellipsis, 12 Empfangspuffer, 122 Endemarke, 82, 92 entdefiniert, 31, 32, 49 Entwicklungssystem, V, VII, 43, 44, 121, 135, 204 Enumerationen, 28, 65, 89 environ, 69, 114 Environment, 40, 69, 114, 135 envp, 40, 69 Epsilon, 21 Erkennungsmarke, 26, 72 Ersatzkode, 201 Ersatzsymbole, 11 Ersatztext, 32, 33, 141, 148, 259 Ersetzung, 33 Ersetzungsmuster, 150 Etikett, 83, 204 Exception, 54 Executable, 43, 44, 203 exit, 41, 132 exit-wert, 37, 41 Expansionen, 125 exportiert, 4, 101, 167 Expression, 156, 250 extern, 4, 39, 69, 78, 101, 102, 104, 167, 169, 170, 267 Externe Bindung, 104 Füll-Bytes, 19, 80, 84, 90 Fallunterscheidung, 4 Fallzweig, 4, 143 FAR, 24, 71, 183 Feld, 26, 61, 139, 204 Feldadresse, 61 FILE, 6, 83, 211 Filedescriptor, 127, 233 Flaschenhals, 173 Format, 60, 76, 139, 183, 214, 215 formatfrei, 138 Formatieranweisung, 154, 155 Formatierprogramme, 138 Formatierungen, 151 Formatstartzeichen, 35 Fortsetzungssprung, 4 FPU, 131, 179 Fragmentierung, 173 Framepointer, 177, 178, 180 FreeBSD, VII, 135, 231 Fujitsu, 182 Funktion, 4, 5, 8, 9, 12, 21, 29, 30, 32, 35, 37, 39 41, 44, 45, 52, 54, 63, 65, 71, 73, 75, 76, 80, 83, 90 93, 95, 96, 98, 99, , 109, , 122, , 132, 135, 138, 146, 147, 150, 154, , 167, , 177, , 183, 187, 188, 192, 194, 195, 197, 201, 202, 207, , 214, 215, , 248, 249, 266, 267 Funktionsadressen, 83, 91, 126 Funktionsanfang, 178 Funktionsargument, 63, 117, 118, 165, 177 Funktionsargumentwerte, 177 Funktionsaufruf, 14, 28, 82, 95, 104, 109, 111, 117, 118, 128, 130, 177, 179, 194, 196, 200 Funktionsinstanz, 165 Funktionskörper, 39, 73, 90, 103, 105, 128, 165, 181 Funktionskopf, 12, 105 Funktionslösung, 130 Funktionsname, 91 Funktionsparameter, 63, 78, 104, 177, 265 Funktionssatz, 207 Funktionsverlassen, 52 Gültigkeitsbereich, 48, 52, 91, 109, 203 gcc, VI, 8, 41, 43, 46, 47, 56, 59, 71, 83, 167, 180 Gleitkomma, 3, 21, 54, 72, 181, 213, 245 Gleitkommakonstanten, 131 Gleitkommatypen, 63 Gleitkommawerte, 63, 179 global, 5, 8, 52, 71, 84, 90, 101, 126, 131, 165, 195, 203, 208, 209 GNU, 43, 46, 136, 137 goto, 4, , 188, 194, 197, 209

19 Sachverzeichnis 275 Handle, 145, 149, 150, 211, 230, 233 Handler, 179, 210 Header, VI, 3, 32, 40, 49, 55, 166, 168, 169, 171, 203, 209, 244, 267 hexadezimal, 26 Hexadezmal, 213 Hierarchie, 126 hierarchisch, 61, 126 Hilfsprogramm, 121, 135, 136, 167 icc, 43, 45, 46 IDE, 135, 168 IEC, V, 47, 200 Implementation, 49, 87, 94, 204, 244 implementationsspezifisch, 8, 37, 87 implizit, 8, 14, 63, 69, 72, 100, 241 importiert, 101 in place, 35, 145 Index, 14, 23, 76, 78, 125, 127, 172, 198, 241 Indexvariable, 127 Indexwert, 14, 66, 81, 102 Indirekt, 200 Indirektionsebene, 143 Informationsdienst, 234 Initialisierer, 50, 82 Initialisierung, 4, 50, 78, 82, 93, 99, 100, 103, 126, 265, 267 Initialisierungsliste, 50, 74, 83, 100 Initialisierungsmöglichkeiten, 50 inkludiert, 102, 160, 166, Inkludierung, 32, 43, 168, 170 Inkrement, 17, 117 Instanz, 41, 95, 99, 104 Instruktion, 56, 64, 90, 125, 128, 129, 177, 178, 181 Integer, 3, 7, 8, 14, 16, 19 21, 34, 47 49, 54, 63, 68, 73, 108, 122, 124, 130, 136, 183, 209, 213, 241, 245, 249 Integertyp, 63, 71 Integervariablen, 65 Integerwerten, 65, 68 INTEL, VII, 7, 18, 43, 45, 46, 67, 76, 87, 93, 102, 123, 177, 205, 246 Interpreter, VII, 135, 143, 243 ISO, V, 40, 47, 200, 207 ix86, VII, 7, 56, 67, 71, 76, 177, 205, 231, 246 Klammer, 11, 12, 14, 20, 23, 32, 78, 80, 100, 102, 103, 106, 115, 140, 141, 241, 251, 255, 260 Klammerebene, 260 Klammerpaare, 260 Klammerung, 19, 22, 241 Kleinschreibung, 114, 254 Kodeabschnitt, VII, 122, 123, 138, 154, 160, 196, 199, 205 Kodeadresse, 90, 178 Kodezeile, 138, 199 Komma, 13, 17, 23, 74, 100, 106, 107, 118, 194, 196 Kommaliste, 14, 23, 109 Kommando, V VII, 31, 40, 98, 135, 140, , 150, 156, 203, 229, 233, 253, Kommentar, 110, 139, 147 Kommentarmechanismus, 34 Kommentartext, 139 Kommunikation, 143, 188 kompakt, VI, 23, 61, 134 Kompaktheit, VI Kompilation, 142, 204 kompilieren, 35, 37, 44, 45, 59, 71, 123, 135, 136, 142, , 180, 205 Kompilierung, V, 33, 34, 37, 39, 59, 114, 123, 135, 143, 166, 194, 203, 204, 241 Kompilierzeit, 29, 46, 125, 129, 180, 199 Komplement, 8, 16, 63, 242, 245 Komponente, 83, 126, 130, 204 Konformität, 122 Konstante, 20, 25 29, 65, 84, 90, 113, 125, 130, 134, 151, 194, 197, 199, 265 Konstanter Ausdruck, 29 Kontext, 11, 26, 27, 76, 138, 199, 202, 203, 205, 206 Konvention, 90, 177, 179 Konversionen, 85, 245 Konzept, 30, 47, 63, 92, 100, 104, 125, 127, 140, 143, 145, , 170, 177, 207, 267 Konzeptdenken, 47 Kopf, 12, 196, 203 Kopfteil, 107 Kopfzeile, 144 Kopie, 46, 193 Kurzform, VI Kurzschreibweise, 7

20 276 Sachverzeichnis Label, 131, 178 Laufzeit, 20, 41, 52, 78, 125, 180, 208 Laufzeitkode, 151 Layout, 85, 88, 123, 131 Leeranweisung, 109, 131 Leerstring, 131 Leerzeichen, 25, 31, 138, 146, 148, 150, 165, 213, 261, 264 Leerzeile, 138, 254, 259 lengthof, 249 Lesezugriff, 99, 117, 118, 146 Library, VI, 40, 44, 80, 86, 102, 114, 117, 167, 204, 207, 229 Limits, 179 Linker, 25, 39, 41, 44, 102, 104, 168, 204 longjmp, 5, 132, 176, 194, 201, 209 lvalue, 17 Makro, 12, 22, 24, 32, 33, 35, 49, 55, 61, 78, 83, 84, 92 94, 110, 113, , 133, 136, 183, 194, 196, , 232, 248, 249, 267 Makroargumente, 125, 200 Makrodefinition, 12, 188, 204 Makroexpansionen, 125 Makronamen, 33, 130, 138 Makroverschachtelung, 32, 128 malloc, 52, 80, 97, 132, , 175, 179, 208, 247, 267 Marke, 108, 138, 141, 254, 257, 258 Maschinenwort, 63, 90, 182 Mehrfachkode, 108, 110, 121, 194, 199, 200 Mehrfachzuweisung, 23, 75 Member, 204 Memory-mapping, 86 Mißbilligt, 193, 195, 196, 202 Mißinterpretationen, 206 Mikrokontroller, VII, 111, 123, 125, 126, 128, 181, 182, 188, 200, 202, 248 Misalignment, 18, 67, 71 MISRA, 193, 194, 199, 200, 202 Mitglied, 15, 61, 75, 83 85, 88, 100, 204, 232, 244 Mitgliedstypen, 85 Modul, 35, 43, 101, 102, 104, , 203, 205, 267 Nachbaroperanden, 63 Name, 3, 4, 14, 15, 23, 25, 31 33, 35, 40, 43, 44, 49, 76, 78, 83, 84, 87, 89 91, 100, 101, 104, 113, 115, 116, 126, 131, 138, 143, 145, 148, 166, 167, 199, 244, 249, 250, 262 Namenlose, 265 Namensbildungen, 55, 125 Namenteile, 33 normativ, 249 NULL, 16, 26, 40, 72, 73, 80, 82, 92, 101, 114, 174, 208, 211, 245 Null, 26 28, 72, 73, 82, 99, 101, 180, 188, 245 Objekt, 4, 5, 9, 15, 18, 19, 40, 43, 48, 51, 65 69, 71, 72, 75, 79, 80, 82 85, 90, 91, 94, 95, , 109, 114, 117, 118, 123, 124, 129, 131, 132, 167, 168, 170, 173, 174, 176, 177, 179, 203, 204, 209, 214, 245, 267 Objekt-Layout, 85, 123 Objektadresse, 65, 66, 73, 90 Objektarten, 100 Objektdatei, 37, 41, 45 Objektinhalte, 90 Objektnamen, 52, 124 objektorientiert, 126, 265, 267 Objektressourcen, 173 obsolet, 96 offsetof, 84, 194, 201 Oktal, 26, 28, 194, 197, 213, 268 Oktet, 204 on the fly, 49, 265 Operand, 13, 14, 29, 124, 133, 178 Operation, 9, 13, 16, 64, 65, 73, 79, 111, 117, 123, 240, 242, 249 Operator, 11 17, 19 25, 32, 55, 60, 63, 76, 81, 84, 98, 102, 115, 124, 125, 129, 138, 146, 194, 196, 199, 240, 247, 248, 260, 266 Optimierung, 4, 5, 43, 44, 48, 102, 125, 128, 131, 151, 167, 168 Option, 8, 27, 37, 44, 141, 144, 167, 212 Padding-Bits, 19, 54, 85, 86, 122, 246, 249 Parameter, 12, 40, 90 96, 99, 128, 167, 173 Parameterübergabe, 167 Parameterliste, 94 Parametertyp, 63, 92

21 Sachverzeichnis 277 Parser, 113 PASCAL, 60, 177, 239 PEARL, 62 perl, 142, 143, 147 Plattform, VII, 7, 8, 63, 69, 71, 87, 93, 94, 101, 123, 125, 131, 139, 182, 204, 205, 239, 245, 246, 249 plattformspezifisch, 21, 25, 67, 76, 205 Pointer, 6, 16, 26, 27, 48, 59, 72, 73, 78, 80, 82, 92, 110, 172, 174, 183, 194, 195, 202, 204, 245 portabel, V, VII, 19, 24, 27, 28, 30, 54, 71, 73, 76, 87, 122, 123, 128, 129, 183, 184, 188, 210, 239, 240, , 250 Portabilität, 71, 92, 94, 122, 123, 184, 188, 239 POSIX, 207, 229 Preprocessor, 4, 12, 22, 25, 28, 31 34, 43, 44, 121, 124, 128, 130, 136, 204 Problemlösungskraft, 60, 143, 188, 193 Produktivität, 128, 132, 170 Programm, VII, 8, 20, 31, 37 41, 43, 44, 49, 54, 61, 71, 78, , 132, 133, 135, 136, 139, , 166, 168, 172, 173, 176, 180, 181, 201, 203, 204, 208, 229, 233, 241, 245, 246, 251, 265, 267 Programmablauf, 39 Programmieren, V, VII, 13, 47, 71, 121, 123, 126, 127, 135, 136, 173, 181, 193, 195, 202, 205, 241, 245, 247, 265 Programmierer, VI, 20, 31, 48, 60, 65, 135, 139, 166, 193, 202, 239, 245, 246, 248 Programmierleistung, 138 Programmierpraxis, VII Programmiersprache, VI, VII, 3, 59, 60, 62, 73, 95, 121, 139, 142, 157, 160, 194, 195, 197, 199, 202, 207, 239, 241, 248 Programmierwerkzeug, 196 Programmlaufzeitlebensdauer, 41 Programmstart, 95, , 211, 230, 245 Projekt, 43, 121, 136, 166, 168, 170, 203 Projektaufbau, 166 Projektmanagement, 168 Projektmitglied, 170 Projektverzeichnis, 166 Projektwerkzeugen, 168 Promotion, 10, 20, 63, 90, 182, 241 Prototyp, 12, 39, 40, 52, 90 92, 96, 101, 102, 203, 265, 267 Prozessor, V, VII, 4, 8, 18, 54, 56, 60, 63, 67, 71, 85, 90, 102, 122, 123, 136, 177, 204, 205, 209, 239, 242, 245, 246, 249 Prozessortakte, 52, 85 Publizieren, 101, 104 Pufferüberlauf, 122 Punktuator, 11, 12, 23 qualifiziert, 9, 48, 71, 111, 114, 131, 201, 209 Quelldatei, 31, 160, 167 Quellkode, 31, 39, 40, 43, 64, 123, 125, 168 Quelltext, 6, 25, 31, 37, 44, 59, 60, 67, 72, 84, 85, 121, 124, 128, 135, 136, 138, 139, 142, 167, 180, 181, 203, 204, 208 Quicksort, 95 Rückgabetyp, 39, 172 Rückgabewert, 8, 41, 56, 109, 115, 127, 172, 180, 188, 212, 214, 230 Rücksprung, 4, 109 Rücksprungadresse, 179, 180 Rang, 13, 14, 22 24, 50, 77, 84, 98, 115, 194, 196, 240, 246 Rangklammerung, 24 Rangreihenfolge, 115 Rechtsschieben, 21 redundant, 8, 9, 12, 35, 56, 74, 100, 165, 194, 198, 248 Redundanz, 12 Referenz, VI, 61, 62, 73, 265 Register, 4, 5, 86, 102, 104, 105, 111, 177, 179 Reguläre Ausdrücke, 136, 140, 141, 156, Rekursion, VII, 32, 83, 90, 95, 103, 154, , 177, 194, 196 rekursiv, 33, 40, 83, 90, 95 98, 104, 130, 146, 154, 164, 177, 196 reserviert, 3, 60, 208, 244 Ressourcen, 125, 173, 239 Ressourcenschonung, VII, 239 rvalue, 17 Schiebeoperation, 24 Schlüsselwort, 3, 6, 23, 25, 39, 41, 48, 49, 55, 101, 102, 105, 194, 197, 205, 207, 248, 249, 266

22 278 Sachverzeichnis Schleife, 4, 12, 18, 39, 46, 92, 99, , 113, 125, 144, 145, 160, 172, 196 Schleifendurchlauf, 99 Schleifenkörper, 101 Schleifenverwaltung, 125 Schreibweise, 4, 23, 40, 55, 134 Segment, 126, 168 Seiteneffekte, 9, 111, 131, 194, 199 Sequenzpunkt, 12, 17, 22, 23, 117, 118, 199, 240 setjmp, 5, 109, 132, 194, 201, 209 Shell, , 157, 163, 166, 197, 263 Sicherheit, 60, 96, 121, 128, 131, 132, 151, 196, 199, 239 Signal, 179, 210 signal, 6, 115, 132, 210 SIGSEGV, 179 Skalierung, 124, 125 Skript, VII, 135, 136, 142, 143, , , 160, 166, 188, 243, 250 Skriptinterpreter, 154 Skriptsprache, 135, 150, 157, 188 Speicher, 27, 48, 52, 65 67, 72, 75, 76, 79, 83, 85, 95, 96, 99, 101, 103, 104, 111, 122, 123, 126, 128, 172, 173, 175, 176, 179, 180, 183, 204, 214, 257 Speicherbedarf, 82, 85, 96, 174, 179 Speicherbereich, 4, 48, 172, 176, 177, 208 Speichereinheit, 87, 88 Speicherfreigabe, 80, 172 Speicherklasse, 71, 102, 105, 172, 173, 177 Speicherlecks, 172, 173, 206 Speicherobjekt, 67, 83 Speicherplatz, 52, 65, 66, 68, 80, 85, 104, 128, , 177, 179, 203, 208, 240 Speicherverletzung, 78, 179 Speicherverwaltung, 174, 176 Speicherzuteilung, 80, 171, 173, 174, 179, 245, 265 Sprunganweisung, 197 Sprungmarke, 12, 178 Sprungstellennummer, 188 Sprungtabelle, 134, 188 Stack, 52, 56, 95, 103, , 183, 257 Stackbedarf, 177 Stacklimit, 179 Stackpointer, Standard, V VII, 3, 8, 25, 32, 40, 43, 47, 49, 54, 71 73, 83, 85, 93, 96, 103, 105, 114, 117, 122, 127, 129, 132, 139, 177, 183, , 205, 207, 210, 229, 242, , 265 Standardeingabe, 149 Standardfunktionen, 179 standardisiert, 86, 200, 207, 210 standardkonform, 41, 87, 114, 176 Startkode, 37, static, 4, 39, 41, 52, 71, 95, 101, 131, 167, 248, 265 statisch, 4, 41, 52, 71, 90, , 103, 104, 167, 188 stdin stdout stderr, 6, 211 Stephen Bourne, 142, 143, 145, 197, 263 Stil, 134, 137, 138 Stringizing, 12 Stringliterale, 248, 249 Strings, 82 Struktur, 3, 6, 12, 15, 18, 19, 50, 52, 61, 62, 65, 75, 83 85, 87, 88, 90, 100, 124, 126, 127, 129, 130, 133, 151, 176, 195, 201, 204, 209, 232, 234, 244, 248, 266 Strukturdefinition, 83 Strukturdeklaration, 244 Strukturgröße, 127 Strukturierung, 61, 84, 130 Strukturkomponente, 124, 126, 151, 201 Strukturtyp, 83, 84, 126, 130, 204 Strukturzeiger, 83, 124, 127 Substitution, 140, 141, 250 Substrukturen, 83, 126 Suchmuster, 71, 136, 139, 143, 165, 256, 259 Suffix, 26, 131 switch, 4, 108, 109, 113, 117, 188, 194, 197, 200, 248 Symbol, 4, 11, 39, 41, 60, 86, 102, 104, 167, 204 Syntax, 19, 23, 31, 44, 50, 60, 61, 113, 124, 136, 139, , 145, 148, 160, 164, 165, 168, 180, 203, 205, 251, 252 Syntaxeinfärbung, 139, 154, 205 Syntaxeinheiten, 25 Syntaxfehler, 240 Syntaxkonstruktion, 95, 111, 165 Tabelle, VI, 8, 151, 165 Tag, 204

23 Sachverzeichnis 279 Taktzyklen, 128 Textdatei, 139, 150, 151 Texteditor, 135 Textersetzungsmechanismus, 121 Tokenizer, 12 Translator, 142 Trap-Repräsentation, 54 Trenner, 12, 13, 23, 35, 253, 254 Trennwirkung, 25 Typ, VI, 3, 6 9, 13, 18 24, 26, 27, 37, 40, 41, 47 49, 52, 54, 62 69, 71, 73, 75 77, 79 87, 90 92, 94, 101, 104, 109, 111, 115, 116, 123, 124, 126, 129, 131, 132, 169, 171, 172, 182, 194, 198, 203, 208, , , 245, , 265, 267 Typ-Cast, 9, 18, 19, 22, 24, 63, 64, 73, 129, 171, 172, 208, 240, 241 Typdefinition, 204 typedef, 3, 6, 19, 61, 83, 115, 132, 204, 210, 265 Typgerecht, 9, 41, , 126 Typkombinationen, 20 Typnamen, 131 Typprüfung, 104 Typumwandlung, 9, 63, 64 Umgebungsvariablen, 40 Union, 54, 65, 75, 83, 85 87, 100, 204 UNIX, V VII, 43, 44, 49, 60, 114, 123, 127, 128, 131, 135, 139, 142, 143, 168, 179, 188, 210, 211, 229, 231, 234, Unterlauf, 242 Ursprungstyp, 63 va_list, 94 va_start, 93, 94, 183, 184 Variable, 5, 9, 14, 15, 17, 20, 23, 48, 54, 64 69, 76, 79, 90, 91, 100, 102, 103, 105, 109, 111, 113, 145, 146, 150, 165, 172, 188, 201, 209, 210 Variablendefinition, 265 Variableninhalt, 17, 66, 144 Variablennamen, 17, 138 Variadisch, 90, 202 Variante, 8, 17, 30, 32, 45, 55, 74, 93, 114, 122, 135, 180, 204, 215, 250 Vektor, 204 Vereinbarung, 203 Vereinbarungsbereich, 84 Vereinigung, 204 Verfasser, VI, VII, 135, 143, 239, 247, 248 Vergleich, 9, 21, 45, 63, 64, 68, 73, 135, 147, 179, 241, 249, 266 Vergleichsoperator, 21, 22, 72, 196, 248 Verkapselung, 101 Verknüpfung, 13, 20, 22, 68, 204 Verknüpfungsreihenfolge, 14 Verschachtelung, 29, 60, 66 Verschachtelungsebene, 126 Verschachtelungstiefe, 95 Versionskontrolle, 136 Verweis, 62 Verzeichnis, 49, 136, 229 VLA, 47, 52, 56, 109, 180 void, 3, 8, 9, 20, 22, 69, 90, 93, 107, 109, 111, 115, 129, 208, 213, 267 volatile, 4, 5, 9, 48, 111, 131, 201, 209 Vorzeichen, 3, 8, 16, 21, 71, 240 vorzeichenbehaftet, 8, 19, 198, 241, 242 vorzeichenerhaltend, 8, 63, 240 vorzeichenlos, 56, 240 Warnung, 19, 59, 71, 87, 114, 181, 201, 248, 261, 263 Wertbereich, 4, 7, 8, 27, 41, 48, 63, 248 Wertbeschneidung, 63 Wertekombinationen, 54 White space, 25 Wiederverwendbarkeit, 121 Windows, 123, 128, 135, 139, 143 Zahlenbasen, 26, 146, 243 Zahlenbereich, 8, 27, 65, 74, 87, 123, 242 Zahlendarstellung, 16, 72 Zahlenwertbereiche, 27, 240 Zeichenfolge, 12, 141, 146, 150, Zeichenkette, 21, 27, 28, 35, 40, 69, 82, 85, 92, 100, 114, 142, 173, 209, Zeichenkettenkonstante, 27, 31, 82, 100 Zeichenklasse, Zeichenkonstanten, 8, 27, 241, 248, 267 Zeichenmenge, 34, 252 Zeichenwerte, 143 Zeiger, 4, 50, 52, 61, 79, 83, 116, 126, 204, 244, 247 Zeilenanfang, , 259

24 280 Sachverzeichnis Zeilenargumenten, 151 Zeilenende, 29, 141, , 259, 264 Zeilenkommentar, 29, 48, 265 Zeilenlänge, 172 Zeilenvorschub, 28, 29, 33, 123, 141, 145, 211 Zielobjekt, 9, 19, 63 Zielpuffer, 29 Zieltyp, 20, 27, 63 Ziffer, 26, 28, 30, 133, 141, 213, 258 Ziffernmenge, 26 Ziffernzeichen, 25 Zugriffsadresse, 67, 78 Zugriffsberechnung, 78 Zugriffsbreite, 85 Zugriffserlaubnisse, 232 Zugriffsindex, 76 Zugriffsoperator, 15 Zusammenfassungsrichtung, 13, 240 Zustandsanzeige, 198 Zustandsmaschine, 108, 113, 197 Zuweisung, 9, 14, 17 20, 37, 48, 50, 63, 72, 82, 99, 103, 111, 113, 184, 214, 240, 247 Zuweisungsoperator, 50, 118 Zuweisungswert, 48 Zwischenraum, 61, 215 Zwischenraumzeichen, 25, 31, 215

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen 1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-

Mehr

Die Reihe Xpert.press vermittelt Professionals in den Bereichen Softwareentwicklung, Internettechnologie und IT-Management aktuell und kompetent

Die Reihe Xpert.press vermittelt Professionals in den Bereichen Softwareentwicklung, Internettechnologie und IT-Management aktuell und kompetent Die Reihe Xpert.press vermittelt Professionals in den Bereichen Softwareentwicklung, Internettechnologie und IT-Management aktuell und kompetent relevantes Fachwissen über Technologien und Produkte zur

Mehr

Moderne C-Programmierung

Moderne C-Programmierung Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete

Mehr

Moderne C-Programmierung

Moderne C-Programmierung Helmut O.B. Schellong Moderne C-Programmierung Kompendium und Referenz 3., vollständig überarbeitete und erweiterte Auflage Springer Vieweg Inhaltsverzeichnis Teil I Erfassung der Sprache C / Referenz

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15 Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen

Mehr

Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten

Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R. Spurk (Informatik)

Mehr

Programmieren in. Brian W. Kernighan Dennis M. Ritchie ANSIC. Mit dem C-Reference Manual in deutscher Sprache. Zweite Ausgabe

Programmieren in. Brian W. Kernighan Dennis M. Ritchie ANSIC. Mit dem C-Reference Manual in deutscher Sprache. Zweite Ausgabe Brian W. Kernighan Dennis M. Ritchie Programmieren in Mit dem C-Reference Manual in deutscher Sprache Zweite Ausgabe ANSIC Die deutsche Ausgabe besorgten Prof. Dr. A.T. Schreiner und Dr. Ernst Janich Eine

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage

ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage ISO-SiMMlarcl als erste Programmiersprache Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage B.G.Teubner Stuttgart Leipzig 1999 Inhaltsverzeichnis 1.1 Algorithmen und

Mehr

4.2 Programmiersprache C

4.2 Programmiersprache C 4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.

Mehr

Programmierkurs C++ Variablen und Datentypen

Programmierkurs C++ Variablen und Datentypen Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in

Mehr

С als erste Programmiersprache

С als erste Programmiersprache Joachim Goll Ulrich Bröckl Manfred Dausmann С als erste Programmiersprache Vom Einsteiger zum Profi 4., überarbeitete und erweiterte Auflage Teubner B.G.Teubner Stuttgart Leipzig Wiesbaden 1 2 3 4 5 GRUNDBEGRIFFE

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

Inhaltsverzeichnis. Vorwort.11

Inhaltsverzeichnis. Vorwort.11 Inhaltsverzeichnis Vorwort.11 Kapitel 1 Einführung in die C-Programmierung 17 1.1 Ein erstes C-Programm 17 1.1.1 Analyse des Zinseszins-Programms 17 1.2 Compilieren und Ausführen eines Programms 24 1.3

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache

Mehr

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

Eine praktische Einführung in die Programmierung mit der Programmiersprache C Eine praktische Einführung in die Programmierung mit der Programmiersprache C www.c-howto.de C-HowTo www.c-howto.de Inhaltsverzeichnis 1 Einführung.. 10 1:1 Wozu Programmieren? 10 1.2 Was ist ein Programm?

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Repetitorium Programmieren I + II

Repetitorium Programmieren I + II Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case

Mehr

Teil II. Literatur zur C-Programmierung:

Teil II. Literatur zur C-Programmierung: Teil II 2Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: A Software Engineering Approach. Springer 1991 Kernighan, Ritchie. The C Programming Language.

Mehr

Effektiv Programmieren in С und C++

Effektiv Programmieren in С und C++ Dietmar Herrmann Effektiv Programmieren in С und C++ Eine Einführung mit Beispielen aus Mathematik, Naturwissenschaft und Technik 3., vollständig überarbeitete und erweiterte Auflage 3 vieweg flffm \;i

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden

Mehr

Manfred Dausmann Ulrich BröckI Dominik Schoop Joachim Goll C als erste Programmiersprache

Manfred Dausmann Ulrich BröckI Dominik Schoop Joachim Goll C als erste Programmiersprache Manfred Dausmann Ulrich BröckI Dominik Schoop Joachim Goll C als erste Programmiersprache Vom Einsteiger zum Fortgeschrittenen 7., überarbeitete und erweiterte Auflage Mit 35 Abbildungen STUDIUM VIEWEG+

Mehr

Systemprogrammierung

Systemprogrammierung IEinführung I in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: Software Engineering pproach. Springer 1991 Kernighan, Ritchie. The C Programming Language. Prentice-Hall

Mehr

RO-Tutorien 17 und 18

RO-Tutorien 17 und 18 RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Typ : void* aktuelle Parameter Pointer von beliebigem Typ 2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen Inhalt 3 Bemerkung... 9 Vorwort... 10 1 Programme und Programmiersprachen 1.1 Assembler... 13 1.2 Höhere Programmiersprachen... 15 1.2.1 Interpreter... 16 1.2.2 Compiler... 17 1.2.3 Zwischencode... 18

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

F Zeiger, Felder und Strukturen in C

F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Praxis der Programmierung

Praxis der Programmierung Arrays, Pointerarithmetik, Konstanten, Makros Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vektoren) 2 Arrays: Motivation

Mehr

Herzlich willkommen!

Herzlich willkommen! Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

C Kurzeinführung in die Programmiersprache C

C Kurzeinführung in die Programmiersprache C C Kurzeinführung in die Programmiersprache C C Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: A Software Engineering Approach. Springer 1991 Kernighan,

Mehr

C Kurzeinführung in die Programmiersprache C. C-3 Datentypen und Variablen. C-2 Struktur eines C-Programms. C-1 Überblick. 1 Standardtypen in C

C Kurzeinführung in die Programmiersprache C. C-3 Datentypen und Variablen. C-2 Struktur eines C-Programms. C-1 Überblick. 1 Standardtypen in C C Kurzeinführung in die Programmiersprache C C Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Datentypen legen fest: Darnell, Margolis. C: A Software Engineering Approach. Springer

Mehr

Einleitung Grundlagen Erweiterte Grundlagen Zusammenfassung Literatur. C: Funktionen. Philip Gawehn

Einleitung Grundlagen Erweiterte Grundlagen Zusammenfassung Literatur. C: Funktionen. Philip Gawehn C: Funktionen Philip Gawehn Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Do., 22.05.2014 1 / 23 Gliederung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 1 Einführung Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Inhalte der Veranstaltung 1 Einführung das Maschinenmodell

Mehr

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen assemblerähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

1. Referenzdatentypen: Felder und Strings

1. Referenzdatentypen: Felder und Strings 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2 Vorwort zur zweiten Auflage 1 Vorwort zur ersten Auflage 2 1 Über dieses Buch 3 1.1 WarumdiesesBuch?... 3 1.2 Voraussetzungen...... 4 1.3 Systematik... 4 1.4 WieliestmandiesesBuch?... 6 1.5 ZugriffaufdieQuellenzudenBeispielen...

Mehr

Programmieren in C / C++ Grundlagen C 2

Programmieren in C / C++ Grundlagen C 2 Programmieren in C / C++ Grundlagen C 2 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen

Mehr

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

3. Einführung in C Programmierung Einführung in C Programmierung

3. Einführung in C Programmierung Einführung in C Programmierung Einführung in C Programmierung 3-1 Warum die Programmiersprache C lernen? C Programme sind leicht zwischen verschiedenen Systemumgebungen portierbar. C ist eine geeignete Sprache zum Aufbau einer Programmbausteinbibliothek.

Mehr

Inhalte. Einführung. Algorithmus, Programmiersprache, Compiler und Linker. Datentypen (elementare) Kontrollstrukturen. Präprozessoranweisungen

Inhalte. Einführung. Algorithmus, Programmiersprache, Compiler und Linker. Datentypen (elementare) Kontrollstrukturen. Präprozessoranweisungen INFDT.1 Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen (elementare) Kontrollstrukturen Präprozessoranweisungen Libraries Funktionen und Klassen Inhalte INFDT.2

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

C für Java-Programmierer

C für Java-Programmierer Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im

Mehr

Einführung in die Programmierung Wintersemester 2008/09

Einführung in die Programmierung Wintersemester 2008/09 Einführung in die Programmierung Wintersemester 28/9 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Darstellung von Information Inhalt Einfache Datentypen

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

76,81,85 11' 16, 17 10, 13, 14,44,47,49,69, 70,75,99 42,43,44,49 94,95 97,98 42,48,49,50,56,63, 65,92,105 97,98 19,94,108 19, 101

76,81,85 11' 16, 17 10, 13, 14,44,47,49,69, 70,75,99 42,43,44,49 94,95 97,98 42,48,49,50,56,63, 65,92,105 97,98 19,94,108 19, 101 149 15 REGISTER abgeleitete Klassen abgeleitete Typen abort abstrakte Datentypen abstrakter Typname Adresse aktueller Parameter Anweisung append arge Argument argv Elementare Anweisungen Kontrollanweisungen

Mehr

Kapitel 2: Grundelemente der Programmierung

Kapitel 2: Grundelemente der Programmierung Kapitel 2: Grundelemente der Programmierung Variablen Variablen sind Speicherbereiche im Arbeitsspeicher Anhand eines Namens kann man Werte hineinschreiben und auch wieder auslesen Variablen besitzen ein

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff. Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Erste Schritte der Programmierung in C

Erste Schritte der Programmierung in C Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

Vorwort 3 Inhaltsverzeichnis 5 1 Zu diesem Buch Beschreibungskonventionen Glossar 16

Vorwort 3 Inhaltsverzeichnis 5 1 Zu diesem Buch Beschreibungskonventionen Glossar 16 Inhaltsverzeichnis 5 Inhaltsverzeichnis Vorwort 3 Inhaltsverzeichnis 5 1 Zu diesem Buch 14 1.1 Beschreibungskonventionen 15 1.2 Glossar 16 2 Einführung 20 2.1 Aufbau eines Programms 20 H-File (Header-File)

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

Grundlagen der Informatik 2. Typen

Grundlagen der Informatik 2. Typen Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace

Mehr

C für Java- Programmierer

C für Java- Programmierer Carsten Vogt C für Java- Programmierer mit 59 Bildern, 36 Tabellen und 35 Aufgaben HANSER Inhalt 1 Einführung 13 Schnelleinstieg 14 1.1 C und Java von den Anfängen bis heute 15 1.1.1 Die Entwicklung von

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Sprachkonstrukte Einführung in Java Folie 1 von 20 12. Mai 2011 Ivo Kronenberg Inhalt Kommentare Identifier (Bezeichner) Variablen Numerische Ausdrücke und Typen Kontrollstrukturen Verzweigungen Bedingungen

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

Programmieren in C+ Einführung in den Sprachstandard C++ Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest

Programmieren in C+ Einführung in den Sprachstandard C++ Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest Martin Schader Stefan Kuhlins Programmieren in C+ Einführung in den Sprachstandard C++ Zweite, verbesserte und erweiterte Auflage Mit 25 Abbildungen Springer-Verlag Berlin Heidelberg New York London Paris

Mehr

Crashkurs C++ - Teil 1

Crashkurs C++ - Teil 1 Crashkurs C++ - Teil 1 Intro Speicherverwaltung Variablen, Pointer, Referenzen Felder statische & dynamische Allozierung Birgit Möller & Denis Williams AG Bioinformatik & Mustererkennung Institut für Informatik

Mehr

Objektorientierte Programmierung mite**

Objektorientierte Programmierung mite** mc Jürgen Franz/Christoph Mattheis Objektorientierte Programmierung mite** Systemunabhängig umsteigen auf C ++ Windowsprogrammierung Beispiele für UNIX Mit 66 Abbildungen Franzis 9 Inhalt 1 Überblick C++

Mehr

C als erste Programmiersprache

C als erste Programmiersprache Manfred Dausmann, Ulrich Bröckl, Joachim Goll C als erste Programmiersprache Vom Einsteiger zum Profi 6., überarbeitete Auflage Teubner Inhaltsverzeichnis 1 Grundbegriffe der Programmierung 2 1.1 Das erste

Mehr

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C I Grundlagen...1 1 Grundprinzipien der Datenverarbeitung...2 1.1 Historische Entwicklung der Datenverarbeitung...2 1.1.1 Von A wie Abakus bis Z wie Zuse...2 1.1.2 Die Rechnergenerationen...3 1.1.3 Computer

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile

Mehr

Speicherklassen (1) Lokale Variablen

Speicherklassen (1) Lokale Variablen Speicherklassen (1) Lokale Variablen Lokale Variablen beschränken sich auf die Funktionen, in denen sie definiert werden Sind in der Funktion gekapselt können also nur in der Funktion verändert werden

Mehr