Moderne C-Programmierung



Ähnliche Dokumente
Moderne C-Programmierung

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

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik Was ist Informatik? Teilgebiete der Informatik 8

Objektorientierte Programmierung in Java

Grundlagen der Programmiersprache C++

C-Programmierung unter TOS ATARI ST

1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20

Informatik mit Delphi

1. Übung zu "Numerik partieller Differentialgleichungen"

Erwin Grüner

Einführung Design und Programmierung. Microsoft Dynamics NAV 2016

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches...

GSD-Radionik iradionics Android-App

Knasmüller.book Seite vii Mittwoch, 28. März : vii. Inhaltsverzeichnis

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

2. Programmierung in C

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

C++-Entwicklung mit Linux

Tipps & Tricks für ConAktiv-User

Stefanie Lahn. Der Businessplan in. Theorie und Praxis. Überlegungen zu einem. zentralen Instrument der. deutschen Gründungsförderung

Einleitung Das VTK-Datenformat Automatisierung mit Python. 3D-Modellierung. Florian Buchegger, Michael Haberleitner. 11. Dez.

REFLEX Zeiterfassung

PHP Programmierung. Seminarunterlage. Version 1.02 vom

Leitfaden für den Zugriff auf die SEB-Webseite. Anmelden, Kennwort ändern, mit- arbeiten und gestalten ;-)

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Inhaltsverzeichnis. 1 Hallo 13

Isabelle Wrase. Mitarbeitermotivation im Outsourcing unter besonderer Berücksichtigung des Facility Managements

Einführung in die C-Programmierung

DAS EINSTEIGERSEMINAR PHP 5.3 LERNEN ÜBEN ANWENDEN. Oliver Leiss Jasmin Schmidt. 3. Auflage

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Abbildungsverzeichnis. Tabellenverzeichnis. Algorithmenverzeichnis. Abkürzungsverzeichnis. Symbolverzeichnis

Zertifizierung nach DIN ENIS09000

EAP. Employee Administration Platform

Wiederholung und Vertiefung. Programmieren in C. Pointer und so... thoto. /dev/tal e.v. 6. April 2013 (Version vom 11. April 2013) Programmieren in C

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

L & G TECH Industriezerspanung

Anforderungsanalyse: Tutor

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Errata-Liste zum Kurs: Einführung in XML (2. Auflage)

System Dynamics. Simulation von Systemen in Powersim. Systemische Prozess und Organisationsberatung Individuelles Coaching für Führungskräfte

Sortierverfahren. Sortierverfahren für eindimensionale Arrays

C#.NET mit Methode. Professionelle Software entwickeln mit C# und.net: Grundlagen, Windows, ADO.NET, ASP.NET und Remoting. vieweg.

Schnelleinstieg. Datenimport für die EXPOSÉ - Familie. Import von Adress / Objektdaten aus MS Excel. = Datenintegration aus anderen Lösungen

Motivation im Betrieb

Version: Version

Grundkurs Programmieren in Java

Einführung in das wissenschaftliche Arbeiten

Dokumentation Data Dictionary (SIP)

Dokumentation zeitgesteuerter -Versand mit Attachments. zum Projekt. Deutsche Gesellschaft für Zahn-, Mund- und Kieferheilkunde

Datentypen: Enum, Array, Struct, Union

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Word 2010 Schnellbausteine

Theoretische und praktische Grundlagen für Fehlerbaumanalysen

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

DATACOPY. Schulungskonzept. DATACOPY-Schulungskonzept Version 1.05 Stand:

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

meinpflegedienst.com Release Notes 3.4

Dokumentenverwaltung im Internet

Schulinterner Lehrplan für das Fach Informatik der Sekundarstufe II an der Bettine von Arnim Gesamtschule

Informatik für Ingenieure

BEISPIELKLAUSUR Softwareentwicklung:

Stand: Adressnummern ändern Modulbeschreibung

Anleitung über den Umgang mit Schildern

Finde Deinen Weg! Es ist Dein Leben und Dein Leben meint es gut mit Dir!

Kurze Einführung in die Programmiersprache C++ und in Root

Vorwort. Ulrich Breymann. Der C++-Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen ISBN:

Komplexe Zahlen und Wechselstromwiderstände

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Berufliche Handlungskompetenz als Studienziel

Inhaltverzeichnis 1 Einführung Zugang zu den Unifr Servern Zugang zu den Druckern Nützliche Links... 6

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Michael Weigend. Python GE-PACKT

SIMULATION DYNAMISCHER SYSTEME f

Kontrollstrukturen - Universität Köln

1 Vom Problem zum Programm

Anleitung. zum Einrichten Ihrer. manitu DSL - Verbindung

jetzt lerne ich PHP 5 & MySQL 4.1 Der schnelle Einstieg in die objektorientierte

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

5. Tutorium zu Programmieren

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Adobe Flash CS4. Herbert A. Mitschke. inklusive DVD-ROM. Von den Programmier-Grundlagen zur professionellen Webentwicklung

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

T3 Map Location. Den eigenen Standort mittels Google Maps auf TYPO3 WebSites anzeigen - inklusive Routenplaner. TYPO3 Modul für Google Maps

1 ALLGEMEINES ZU DYNAMICS NAV Geschichte zu Dynamics NAV Datenbank Wo bekommt man Hilfe zu Dynamics NAV?...

Vorabversion. Schulung am Homepage Administration und Pflege

Inhaltsverzeichnis. TEIL I: Einführung in EXCEL

Von der Idee zum Projekt

Educase. Release Notes 1.7: Neue Funktionen und Verbesserungen. Base-Net Informatik AG Wassergrabe 14 CH-6210 Sursee

Anleitung: Ändern von Seiteninhalten und anlegen eines News Beitrags auf der Homepage des DAV Zorneding

Vorlesung Informatik II

Schulinternes Curriculum im Fach Informatik

Übung - Konfigurieren einer Windows 7-Firewall

ATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 02 - Aufbau eines C-Projektes

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Projekt: RFC to FTP. Szenario der serviceorientierten Anwendungsintegration. Sebastian Altendorf Dirk Brillski David Gebhardt

Transkript:

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 1 C-Schlüsselwörter 3 1.1 Liste der Schlüsselwörter 3 1.2 Erklärung einiger besonderer Schlüsselwörter 6 2 Elementare Datentypen 9 2.1 Liste der Datentypen 9 2.2 Erklärungen zu den Datentypen 10 3 Punktuatoren und Operatoren 13 3.1 Punktuatoren 13 3.2 Operatoren 15 3.3 Operatoren, kurz erklärt 16 3.4 Lvalue, Rvalue 30 4 C-Zeichensatz, Konstanten, Kommentare 31 4.1 Zeichenmenge 31 4.2 Zahlenkonstanten 32 4.3 Zeichenkonstanten 34 4.4 Zeichenkettenkonstanten 34 4.4.1 Universal Zeichennamen 35 4.5 Präfixe 36 4.6 Kommentare 37 5 Der C-Preprocessor 39 5.1 Einführende Beispiele mit Erklärungen 39 5.2 Auflistung von Syntaxelementen 42 5.3 Vordefinierte Namen 43 6 Ein schematisches C-Programm 45

XIV Inhaltsverzeichnis 6.1 Minimale C-Quelltexte 45 6.2 Programmschema 46 6.3 Erklärungen zum Programmschema 47 6.4 Startkode 49 7 C-Quelltexte, C-Compiler, Programm 51 8 Der C-Standard C99 55 8.1 Vorwort 55 8.2 Neue Merkmale 56 8.2.1 Auflistung 56 8.2.2 C-Header 58 8.2.3 Kurzbeschreibungen 58 8.2.4 Zielgerichtete Initialisierungen 62 8.2.5 Flexibles Array 63 8.2.6 Namenlose Zuweisungsobjekte 64 8.2.7 Implizite { Blöcke } 65 8.2.8 Array-Deklaration 66 8.2.9 VL-Array und VM-Typ 67 8.2.10 Padding-Bits und Trap-Repräsentationen 71 8.2.11 Automatische Umwandlungen 74 8.2.12 Automatische Umwandlungen C89 75 8.2.13 Alternative Schreibweisen. 76 9 Der neue C-Standard Cll 77 9.1 Vorwort 77 9.2 Neue Merkmale 78 9.2.1 Auflistung 78 9.2.2 C-Header 79 9.2.3 Optionale Merkmale 79 9.2.4 Kurzbeschreibungen 80 9.2.5 Beschreibung neuer Funktionen 84 9.2.6 Thread-Programmierung 85 9.2.7 Anonyme struct+union 86 9.2.8 Exklusiver Dateizugriff 87 9.2.9 Begrenzungstestende Funktionen_s 88

Inhaltsverzeichnis XV Teil II Eingehende Beschreibung der Merkmale 10 Einleitung 91 10.1 Vorurteile i 91 10.2 Automatische Umwandlungen 95 11 Adressen (Zeiger, Pointer) 97 11.1 Adressen der Objekte 97 11.2 Addition, Subtraktion und Differenzbildung 99 11.3 Sammlung von Beispielen 102 11.4 Der NULL-Pointer 104 11.5 Referenzen 105 12 Objekte in C 107 12.1 Arrays (Felder, Vektoren) 107 12.1.1 1-dimensionales Array 107 12.1.2 2-dimensionales Array 109 12.1.3 3-dimensionales Array 110 12.1.4 Sammlung von Beispielen 111 12.1.5 Zeichenketten-Arrays 113 12.2 Strukturen 115 12.3 Unionen 117 12.4 Bitfelder 119 12.5 Enumerationen 121 12.6 Funktionen 122 12.6.1 Funktions-Adressen 123 12.6.2 Variadische Funktionen 124 12.6.3 Rekursion bei Funktionen 127 12.6.4 Quicksort rekursiv 128 12:6.5 Quicksort nichtrekursiv 129 13 Initialisierungen 131 14 Speicherklassen 133 15 Steuerung des Programmablaufes 137 15.1 Anweisungsblöcke {... } 137 15.2 if-anweisung 138 15.3 for-schleife 139 15.4 while-schleife 139 15.5 do-while-schleife 140 15.6 switch Fallunterscheidung 140 15.7 Sprunganweisungen 141 15.8 Ausdrücke 143

XVI Inhaltsverzeichnis 15.9 Beispiel switch 145 16 Komplexe Typen 149 17 Sequenzpunkt-Regeln 151 Teil III C in der Praxis 18 Moderne C-Programmierung 155 18.1 Der Geist von C 157 18.1.1 MISRA und das C-Gespenst 157 18.2 Portabilität 158 18.2.1 Alignment 159 18.2.2 Endianness 160 18.3 Hinweise, Anregungen, Finessen 166 18.3.1 Automatische Skalierung 166 18.3.2 Struktur 168 18.3.3 Makros 170 18.3.4 Optimierung & Verschiedenes 173 18.3.5 Tabellen : 179 18.4 Hilfsprogramme 182 18.4.1 C Beautifier Stil //*Kommentare*/ 183 18.5 Editor gvim (Syntax-Einfärbung) : 186 18.5.1 Reguläre Ausdrücke in gvim 188 18.6 Skript-Interpreter 189 18.6.1 Skript-Interpreter: Shell bsh (perl) 190 18.6.2 Liste bsh-kommandos 199 18.6.3 Herstellung des Manuskripts. 201 18.7 Modul-Konzepte (C-Projekte) 215 18.7.1 Standardkonzept und sein Dogma 215 18.7.2 Quasi eine Datei 215 18.7.3 Projekt-Werkzeuge 217 18.7.4 Individuell einzeln 217 18.8 Speicherzuteilung 220 18.8.1 FunktionmallocO x 220 18.8.2 Fehler: Beispiel 1 220 18.8.3 Fehler: Beispiel 2 222 i 18.8.4 Speicherklasse auto..., 228 18.9 Spezielle sprintf für Mikrokontroller 234 18.10Lösung in auswegloser Situation 239 18.11 Secure Hash Algorithm SHA256 244 19 Unmoderne C-Programmierung 251 19.1 MISRA (-C) 251

Inhaltsverzeichnis XVII 19.1.1 Verbote und Mißbilligungen 252 19.1.2 Beweisführung wider die MisRA-Regeln 253 19.1.3 Fazit 260 Anhang A Allgemein zu diesem Buch 261 A.l Begriffe, kurz erklärt 261 A.2 Hinweise 263 B Die STANDARD-Library 265 B.l Kurzbeschreibung einiger Funktionen 266 C Die Posix-Library 275 C.l Kurzbeschreibung einiger Funktionen 276 C.2.Kurzübersicht Posix-Funktionen 280 D Verschiedenes 289 D.l C im Vergleich 289 D.l.l Bewertung von 19 Programmiersprachen 290 D.2 Hinweise / Wissenswertes / Tricks 292 D.3 Wünsch dir was 300 D.3.1 Typ-Schlüsselwörter 302 D.3.2 Tote switch-bereiche 303 D.4 Reguläre Ausdrücke 304 D.5 Kurzbeschreibung vi-kommandos 307 E C++ 319 Literaturverzeichnis 323 Sachverzeichnis 325