HOCHSTÖGER Harald
sein. Es sollten vielmehr durch ausdrucksstarke Namensgebung darauf geachtet werden, daß der Quellcode verständlich ist.
Symbole sind Einheiten, die der Compiler als individuell erkennt und auf denen das Verständnis des Quellcodes basiert.
Präprozessor
Bevor der Compiler ein C-Quellprogramm übersetzt, führt der Präprozessor vorbereitende Arbeiten durch.
• Mehrzeilige Quellprogramm-Aussagen werden zu einzeiligen zusammengefaßt.
• Die für das Verständnis durch den Compiler erforderlichen Grundsymbole werden durch Zwischenraumzeichen getrennt.
• Dateien, die durch #include eingeführt wurden, werden in den an den Compiler weiterzuleitenden Quellcode eingeführt. Es sind dies insbesondere die Headerdateien. Diese enthalten insbesondere Funktions-Prototypen, weiters vordefinierte Bezeichnung, Makros und dergleichen, im Falle unverständlicher Compiler-Fehlermeldungen lohnt es sich oft, die zuständige Header-Datei in den Editor zu laden und anzusehen.
• #define-Direktiven werden im geamten Quellcode durch eine vereinbarten Wert ersetzt.
Bedingte Compilierung, das heißt, Quellprogramm-Abschnitte können je nach Abhängigkeit und anderen Direktiven nach Vorliegen bestimmter Bedingungen in den an den Compiler weiterzuleitenden Quellcode eingefügt werden. Mit #define können auch Makros definiert werden. Im Unterschied zu Unterprogrammen wird hier der ganze Code in das Programm eingeführt
Fehlende #include Dateien führen zu Warnungen, die man beachten sollte. In C++ sogar zu ernsten Fehlermeldungen. Um Warnungen zu Gesicht zu bekommen, wird erst mal mit ALT-F9 nur compiliert. Nicht alle C-Routinen sind allgemein portabel, das heißt, unter beliebigen anderen Betriebssystemen ebenso verfügbar. Die Ablaufsteuerung dient dem Steuern des Ablaufs eines Programms in Abhängigkeit von Bedingungen, die sich während des Ablaufs ergeben. Für die Ablaufsteuerung stehen Schleifen und Auswahlanweisungen zur Verfügung. Um ein Assembler-Unterprogramm in ein C-Programm einzubinden, (=linken) muß der zugehörige Funktionsprototyp als extern vereinbart werden.
Die Speicherklassen eines Datenobjektes wird durch ein Speicherklassen-Attribut bestimmt. Die Speicherklasse bestimmt den Gültigkeitsbereich eines Datenobjektes. Die Sichtbarkeit wird häufig mit den Worten global und lokal beschrieben. Eine Variable kann gleichzeitig global und lokal sein. Global in dem Sinne, daß sie in dem Block, in den sie vereinbart ist. Sowie in allen untergeordneten Blöcken sichtbar ist, lokal in den Sinn daß sie aus einem übergeordnetem Blick nicht sichtbar ist.
ANSI C
Objektorientierte Programmierung ist zur Zeit ein Allheilmittel - obwohl es diese Methodik seit viel mehr als zehn Jahren gibt. Im Kern geht es um wenig mehr als darum, endlich die Prinzipien guter Programmierung anzuwenden, die man seit mehr als 20 Jahren beherrscht. Es stellt sich aber heraus daß man mit ANSI C schlicht und einfach weiter kommt als mit C++. C wurde ursprünglich von Dennis Ritchie im Anhang von [K&R83] definiert. Der ANSI C Standard erschien ungefähr zehn Jahre später und führte bestimmte Änderungen und Erweiterungen ein. ANSI C legt fest, daß Namen fast beliebig lang sein können. Namen, die mit einem Unterstrich beginnen, sind für Bibliotheken vorgesehen, das heißt , sie sollten nicht im Benutzerprogrammen verwendete werden. Global vereinbarte Namen kann man mittels eines Befehls in einer Quelldatei verstecken. ANSI C erlaubt verlangt aber nicht daß bei der Vereinbarung von Funktionen die Parameter direkt in der Parameterliste deklariert werden. Funktionsdeklarationen legen damit auch die Typen ihrer Parameter fest Optional und ohne Einfluß auf die Funktionsdefinition können auch die Parameternamen angegeben werden. Bei C und C++ reichen die portablen Möglichkeiten nicht aus. ANSI C wird benutzt um besonders objektorientiert zu programmieren Nur objektorientiertes Programmieren ermöglicht es Code von Projekt zu Projekt weiterzugeben.. Zu dieser Programmierung braucht man eine ganze Menge stilisierten Code. Die Namen können sich ändern aber die Struktur bleibt gleich. Durch einen eigenen Präprozessor werden wie bei C einige Arbeitsvorgänge durchgeführt. Dieser Präprozessor schreibt am Ende den gleichen ANSI Code wie er auch von Hand geschrieben werden könnte.
HOCHSTÖGER Harald
• Abstrakte Datentypen Für den abstrakten Datentyp verbirgt sich sämtlicher Aspekt seiner Implementierung, wir zum Beispiel die Repräsentierung der einzelnen Werte, vor dem Anwendungsprogramm. Eine Anwendung hat nur Zugriff auf eine Definitionsdatei, in der ein Zeiger den Datentyp repräsentiert, und in der Operationen für den Datentyp als Funktionen deklariert sind, die generische Zeiger akzeptieren und liefern.
• Dynamische Bindung, Generische Funktion Es werden hier auf eine einfache Weise Zeichenketten implementiert. Für diese Zeichenkette wird ein dynamischer Puffer angelegt, der dann den Text enthält. Wenn die Zeichenkette gelöscht wird, muß der dynamische Puffer freigegeben werden. Wenn ein Zeiger auf ein Objekt besteht, kann mit Hilfe der dynamischen Bindung typenspezifische Funktionen finden. Jedes Objekt beginnt mit einer Beschreibung, die Zeiger auf Funktionen enthält, die auf das Objekt angewendet werden.
• Arithmetische Ausdrücke Dynamische Bindung ist ganz allein eine sehr mächtige Programmiertechnik. An Stelle von wenigen Funktionen, die jeweils einen großen switch für viele Spezialfälle enthalten, können hier viel kleine Funktionen schrieben, die immer nur ein Fall bearbeiten müssen. Mit dynamischer Bindung sorgen man dafür, daß die korrekte Funktion aufgerufen wird. Diese Technik vereinfacht Routineaufgaben, und sie resultiert normalerweise in Code, der sich sehr leicht erweitern läßt. Dynamische Bindung kann sehr gut helfen, ein Problem in viele einfache Funktionen zu zerlegen. Ein daraus resultierendes Programm kann sehr leicht erweitert werden.
• Der ooc Präprozessor Es gibt eine Vielzahl von Konventionen, wie bestimmte Funktionen geschrieben werden müssen und welche zusätzlichen Funktionen nötig sind (Selektoren, Initialisierung). Der Präprozessor hilft, die verscheidenden Konventionen einzuhalten. Der ooc hat nicht die Aufgabe jetzt einen neue Programmiersprache einzuführen, nur die Ausgabe von diesem Präprozessor könnte ebenso von Hand geschrieben à es ist ANSI-Code. Es werden hier nur langweilige Routinen durch ein geeignetes Werkzeug erledigt. Wenn Codierstandards dazu führen, daß Teile eines Programms mechanisch erzeigt werden können, dann sollte man das auch tun.
• Lecks in der Speicherverwaltung Moderne Arbeitsplatzrechner haben sehr viel Hauptspeicher. Wenn ein Programm hier und dort ein Byte verliert, macht das wahrscheinlich nicht viel aus. Lecks in der Speicherverwaltung sind aber normalerweise Anzeichen für Fehler in den Algorithmen entweder reagiert das Programm falsch auf unerwartete Eingaben, oder noch schlimmer, das Programm ist versehentlich so entworfen, daß es Verbindungen zu dynamisch beschafften Speicher abbricht.
• Fehlerbehandlung mit System Moderne Programmiersprachen Wie Eiffel oder C++ verfügen über eine besondere Syntax zur Fehlerbehandlung. Bevor eine riskante Aktion versucht wird, führt man eine Fehler Behandlungsroutine ein. Während der riskanten Aktion können Software oder Hardware einen Fehler auslösen und damit die Fehlerbehandlung zu Fall bringen. Theoretische gibt es danach drei Möglichkeiten
1. Terminieren und zwar beides. Die Fehlerbehandlung und sowohl auch die riskante Aktion. Fehlerbehandlung mit Terminierung kann in ANSI C sehr leicht durchgeführt werden.
2. Fortsetzen der riskanten Aktion unmittelbar nach dem Punkt, wo der Fehler entstand und die Fehlerbehandlung ausgelöst wurde.
3. Wiederholen der riskanten Aktion, die den Fehler verursacht hat.
Textquellen: Strukturiertes Programmieren mit C von Harry Feldmann
Arbeit zitieren:
Alexander Wilpert, 2001, Die Unterschiede zwischen C und ANSI C, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Umstellung vom Anrechnungsverfahren zum Halbeinkünfteverfahren, sowie ...
BWL - Rechnungswesen, Bilanzierung, Steuern
Seminararbeit, 22 Seiten
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Alexander Wilpert hat den Text Die Unterschiede zwischen C und ANSI C veröffentlicht
Alexander Wilpert hat einen neuen Text hochgeladen
Fatigue Life Prediction of Solder Joints in Electronic Packages with A...
Istvan Maros, Erdogan Madenci, Ibrahim Guven
Programmieren in C. ANSI C (2. A.)
Mit dem C-Reference Manual
Brian W. Kernighan, Dennis M. Ritchie, Axel-Tobias Schreiner, Ernst Janich
Das C - Lösungsbuch zu ' Programmieren in C'. Ansi C. (2. A.)
Clovis L. Tondo, Scott E. Gimpel
Wireless Telecommunications Networking with ANSI-41
Randall A. Snyder, Michael D. Gallagher, Tom Wheeler
Internetworking with TCP/IP ANSI C Version: Design Implementation, & I...
David L. Stevens, Douglas E. Comer
Introduction to ANSI C for Engineers and Scientists
Dolores M. Etter, D. M. Etter, Delores M. Etter
0 Kommentare