Moderne C-Programmierung



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

Einführung in die C-Programmierung

Deklarationen in C. Prof. Dr. Margarita Esponda

Sobotta Atlas der Anatomie des Menschen

Schulungspaket ISO 9001

Modellierung und Programmierung 1

Propädeutikum. Dipl.-Inf. Frank Güttler

Tutorium Rechnerorganisation

Der Kälteanlagenbauer

Übersicht Programmablaufsteuerung

Koordinatenmesstechnik und CAX-Anwendungen in der Produktion

2. Semester, 2. Prüfung, Lösung

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Einführung in die Programmierung

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Einführung in die Programmierung

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Einführung in die C++ Programmierung für Ingenieure

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Die Programmiersprache C99: Zusammenfassung

Handbuch Farbkomposition - Webfarben

Objektbasierte Entwicklung

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Kreatives Gestalten mit Flash 5.0

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Fallunterscheidung: if-statement

Programmierung in C. Grundlagen. Stefan Kallerhoff

Berufsentwicklung für die Branche der Windenergienutzung in Deutschland

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam

Elektrotechnik für Ingenieure 3

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Klausur in Programmieren

Einführung in die Programmierung

Science goes Business

Objektorientierte Programmierung

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Datentypen: Enum, Array, Struct, Union

Taschenguide. Forderungsverkauf. Wie Sie Ihre Liquidität sichern. Bearbeitet von Ina Klose, Claus Wieland

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Objektorientierte Programmierung mit C++ Vector und List

Vorkurs C++ Programmierung

C/C++ Programmierung

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

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Hochschule München, FK 03 FA SS Ingenieurinformatik

Java Kurs für Anfänger Einheit 5 Methoden

Linux Prinzipien und Programmierung

Delegatesund Ereignisse

Der große Neustart. Kriege um Gold und die Zukunft des globalen Finanzsystems. Bearbeitet von Willem Middelkoop, Wolfgang Wurbs

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Übung 9 - Lösungsvorschlag

Langenscheidt Training plus, Mathe 6. Klasse

Business. Projektmanagement. Grundlagen, Methoden und Techniken. Bearbeitet von Rolf Meier

Webseiten entwickeln mit ASP.NET

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

1 Vom Problem zum Programm

Intrinsisch motivierte Mitarbeiter als Erfolgsfaktor für das Ideenmanagement: Eine empirische Untersuchung

Energieeffiziente Schulen - EnEff:Schule.

Taschenbuch Betriebliche Sicherheitstechnik

Erwin Grüner

Einführung in die Java- Programmierung

Eine Einführung in C-Funktionen

Computeranwendung und Programmierung (CuP)

Führung. Auf die letzten Meter kommt es an. Bearbeitet von Klaus-Dieter Werry

Modul 122 VBA Scribt.docx

5. Tutorium zu Programmieren

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Programmierkurs Java

Pflegebedürftig?! Das Angehörigenbuch

Zusammenfassung des Handzettels für Programmieren in C

Geschäftsprozessmanagement mit Visio, ViFlow und MS Project

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

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

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Entwurf von Algorithmen - Kontrollstrukturen

IT Sicherheitsmanagement

Dr. Monika Meiler. Inhalt

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

Einführung in die Programmierung

Basiswissen Medizinische Software

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Agile Unternehmen durch Business Rules

Einführung in die Programmierung (EPR)

Internationales Privatrecht und Geschäftsführerhaftung bei Insolvenzen von Auslandsgesellschaften

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

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Angewandte Mathematik und Programmierung

Kontrollstrukturen, Strukturierte Programmierung

Führungskräfte-Feedback von Menschen mit Down-Syndrom

Ingenieurinformatik Diplom-FA (C-Programmierung)

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Die Weltwirtschaftskrise

Planungshandbuch Straßen und Wegebau

Transkript:

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 > EDV, Informatik > Programmiersprachen: Methoden > Prozedurorientierte Programmierung Zu Inhaltsverzeichnis schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, ebooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte.

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 (Voreinstellung) Gleitkomma Gleitkomma leer/unbestimmt ohne Vorzeichen (explizit) mit Vorzeichen Beliebig zusammengesetzter Typ (Struktur) Auswahltyp/Vereinigungstyp Aufzählungstyp (Enumeration; ) Individuelle Typvereinbarung Byte-Anzahl von Daten-Objekten und -Typen sizeof Beispiele: sizeof(int), sizeof i

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++.

1.2 Erklärung einiger besonderer Schlüsselwörter 5 1.2 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)

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.