Inhaltsverzeichnis Ubersetzung und Pr aprozessor

Größe: px
Ab Seite anzeigen:

Download "Inhaltsverzeichnis Ubersetzung und Pr aprozessor"

Transkript

1 Inhaltsverzeichnis 4 Übersetzung und Präprozessor Phasen der Übersetzung Die Präprozessorphase Die Kompilierungsphase Die Linkerphase gcc Alle Phasen in einem Durchgang Erzeugen einer.o-datei Angeben von Bibliotheken Die Arbeitsweise des Präprozessors include-direktive und Header-Dateien #include <datei.h> #include datei.h define-direktive, symbolische Konstanten und Makros Symbolische Konstanten Makros Makro-Operatoren Löschen eines Namens Hinweise zum Gebrauch von Namen Vorbesetzte Namen Bedingte Kompilierung Bedingte Kompilierung in Header-Dateien Bedingte Kompilierung für rechnerabhängige Besonderheiten

2 Kapitel 4 Übersetzung und Präprozessor Dieses Kapitel enthält zunächst eine Übersicht der Übersetzungsphasen eines C-Programms. Bestimmte technische Details des Übersetzungsvorgangs sind in verschiedenen Betriebssystemen und verschiedenen Compilern unterschiedlich. Daher beschränkt sich die Darstellung der Übersetzungsphasen auf allgemeine Angaben. Als Beispiele werden gcc- Aufrufe unter UNIX genommen. Das Hauptthema dieses Kapitels ist dann die Beschreibung der ersten Übersetzungsphase: des Präprozessorlaufs. 4.1 Phasen der Übersetzung Ein C-Programm durchläuft von der Erstellung der Textdatei bis zum lauffähigen Programm mehrere Phasen, an denen mehrere Zwischen- und Ergebnisdateien beteiligt sind. Der Benutzer nimmt auf diese Phasen in verschiedener Weise Einfluß, teils in seiner Textdatei, teils durch Optionen beim Aufruf des Compilers: Phase Eingabedateien Produktion Ausgabedatei Präprozessor.c- und.h-dateien expandierter Text interne Datei Compiler interne Datei maschinennaher Code.o-Datei Linker.o-Datei lauffähiges Programm Programmdatei Die Präprozessorphase Der Präprozessor nimmt im Programmtext bestimmte Textersetzungen vor und erstellt als Ausgabe eine (normalerweise unsichtbare ) Textdatei, die wiederum ein C-Programm ist. Der Benutzer sorgt in seinem C-Text durch bestimmte Angaben dafür, daß der Präprozessor solche Ersetzungen vornimmt. 2

3 C-Kurs (ZDV) Übersetzung und Präprozessor Die Kompilierungsphase Der Compiler übersetzt die vom Präprozessor gelieferte Datei in maschinennahe Sprache und legt diesen Code in einer Datei mit dem Suffix.o ab. Der Benutzer kann die Arbeitsweise des Compilers durch eine Vielzahl von Optionen beeinflussen Die Linkerphase Der Linker verbindet eine oder mehrere.o-dateien mit Bibliotheksfunktionen zu einem lauffähigen Programm. Der Linker kennt bereits einige Standardbibliotheken. Zusätzliche Bibliotheken müssen ihm vom Benutzer als Option angegeben werden. 4.2 gcc Im gcc-kommando sind Präprozessor, Compiler und Linker integriert. gcc verfügt über eine Vielzahl von Optionen für alle Phasen der Übersetzung. Diese sollten bei Bedarf im gcc-manual nachgelesen werden. Der Aufruf des UNIX-Kommandos man gcc bietet eine Zusammenfassung. Im folgenden werden nur einige wenige gcc-optionen beschrieben. Weitere gcc-optionen für den Präprozessor befinden sich weiter hinten im Kapitel Alle Phasen in einem Durchgang Für kleine Programme ist folgender Aufruf typisch: gcc -o hallo hallo.c In der Option -o wird der Name des lauffähigen Programms, also des Linkeroutputs, angegeben. Dahinter folgt der Name der C-Datei. Besteht das Programm aus mehreren Modulen, können diese alle angegeben werden: gcc -o super haupt.c sub1.c sub2.c Sowohl die Zwischendatei des Präprozessors als auch die.o-datei des Compilers werden temporär gehalten, d.h. nicht auf der Platte abgelegt.

4 C-Kurs (ZDV) Übersetzung und Präprozessor Erzeugen einer.o-datei Bei umfangreicheren Programmen will man ev. einzelne Module vorübersetzen. Dann wird zunächst nur die.o-datei erzeugt, die, bis auf den Suffix, genauso heißt wie die.c-datei: gcc -c haupt.c Zum Linken wird jetzt die.o-datei angegeben. Dies kann kombiniert werden mit einer.c-datei: gcc -o super haupt.o sub1.c sub2.c Der Vorteil liegt darin, daß haupt.c nicht neu übersetzt wird Angeben von Bibliotheken Header-Datei und Bibliothek arbeiten zwar Hand in Hand, dürfen aber nicht miteinander verwechselt werden. Um etwa die Funktion sqrt zu benutzen, benötigt der Compiler zunächst die Header- Datei math.h, um die Deklaration der Funktion zu erfahren (Anzahl und Typ der Parameter etc.). Der Code der Funktion jedoch steht in einer Bibliothek, die nicht zu den Standardbibliotheken von gcc gehört. Diese Bibliothek heißt m. m wird mit der Option -l angegeben: gcc -o tab tabelle.c -lm Immerhin weiß der Linker, in welcher Directory m zu finden ist. Hat ein Benutzer eine eigene Funktionenbibliothek, so muß er auch noch angeben, in welcher Directory der Linker suchen muß. Das geschieht mit der Option -L: gcc -o haudrauf hau.c drauf.c -L /privlib -lm -lbrutal Die Benutzerbibliothek brutal soll in der Directory privlib gesucht werden. 4.3 Die Arbeitsweise des Präprozessors Der Präprozessor wird als erste Phase der Übersetzung eines C-Programms durchlaufen. Der Präprozessor sucht im Programmtext nach Zeilen, die mit einem # beginnen und interpretiert diese Zeilen als Präprozessor-Direktiven.

5 C-Kurs (ZDV) Übersetzung und Präprozessor 4-5 Die Durchführung bewirkt, daß der ursprüngliche Programmtext verändert wird. Am Ende der Präprozessorphase ist ein neues C-Programm entstanden, das jetzt als Eingabe für den Compiler dient. Der Präprozessor versteht nichts von C-Syntax, er ist auf reine Textersetzung spezialisiert. Durch falsche Anwendung von Direktiven können im resultierenden C-Programm durchaus syntaktische oder semantische Fehler entstehen, die man nicht ohne weiteres erkennt, weil man den Präprozessoroutput normalerweise nicht zu Gesicht bekommt. Wenn man das Ergebnis des Präprozessors sehen will, gibt man in gcc die Option -E an. Dann wird nur die Präpozessorphase durchlaufen und das Ergebnis wird in die Standardausabe geschrieben. Diese sollte man zweckmäßigerweise in eine Datei umlenken: gcc -c hallo.c -E >out out kann jetzt z.b. mit more gelesen werden. 4.4 include-direktive und Header-Dateien Zeilen der Art: #include <datei.h> #include "datei.h" veranlassen den Präprozessor, den Inhalt der Datei datei.h an die Stelle dieser Direktive zu setzen. Eine solche Datei wird Header-Datei oder Include-Datei genannt. Der Suffix.h ist nicht vorgeschrieben, stellt aber eine Konvention dar, die von allen offiziellen Header- Dateien eingehalten wird. Header-Dateien enthalten einfach nur Text, der vom C-Compiler verstanden werden muß. Im Normalfall beschränkt sich eine Header-Datei auf Definitionen und Deklarationen. Der Compiler hat eine Liste von Directories, in denen Header-Dateien gesucht werden, und die Begrenzer der Dateiangabe (<...>,... ) bestimmen, welche dieser Directories wirklich durchsucht werden #include <datei.h> Die Begrenzer <...>, bedeuten, daß die vom System vorgegebenen Directories nach der angegebenen Header-Datei durchsucht werden. In UNIX sind das für gcc: /usr/include, /usr/local/include

6 C-Kurs (ZDV) Übersetzung und Präprozessor 4-6 Hinzu kommen Directories, die je nach Betriebssystem und Rechnerarchitektur verschieden sein können. Die systemeigenen Header-Dateien können ohne weiteres gelesen werden, und es lohnt sich, dieses gelegentlich zu tun, z.b.: more /usr/include/stdio.h Um zu erfahren, aus welchen Directories die Header-Dateien genommen wurden, kann man im gcc-kommando die Option -H angeben: gcc -H -o hallo hallo.c #include datei.h Die Begrenzer... bewirken, daß die Header-Datei zunächst in benutzerdefinierten Directories gesucht werden. Werden die Dateien dort nicht gefunden, so wird die Suche mit den systemeigenenen Directories fortgesetzt. Benutzereigene Directories sind: die working directory Directories, die beim gcc-kommando in der Option -I angegeben wurden. Im folgenden Programmkopf werden drei systemeigene Header-Dateien und eine benutzereigene Header-Datei geladen: #include <stdio.h> #include <stdlib.h> #include <string.h> #include "privat.h" Falls das gcc-kommando so aufgerufen wurde: gcc -o super super.c -I /eigen -I /geheim so wird die Header-Datei privat.h zunächst in der Directory eigen, dann in geheim und schließlich in den systemeigenen Directories gesucht.

7 C-Kurs (ZDV) Übersetzung und Präprozessor define-direktive, symbolische Konstanten und Makros Mit #define werden Namen definiert, denen Textstrings als Werte zugeordnet werden. Erscheint ein solcher Name im weiteren Verlauf des Programmtextes, so wird er vom Präprozessor durch seinen zugeordneten Textstring ersetzt. Ein Name wird syntaktisch gebildet wie ein Name in C, also aus Buchstaben, Ziffern und Underline. Der Name darf nicht mit einer Ziffer beginnen. Namen dürfen parametrisiert sein. Entsprechend unterscheidet man: Unparametrisierte Namen, auch symbolische Konstanten genannt. Parametrisierte Namen, auch Makros genannt Symbolische Konstanten Eine symbolische Konstante wird in der Form definiert: #define name text Symbolische Konstanten werden häufig benutzt, um konstante Werte oder auch kurze Programmteile in den Kopf eines Programms zu schreiben. Konventionellerweise schreibt man solche Namen groß, um sie im Programm besser unterscheiden zu können. Dazu folgendes Programmbeispiel: #include <stdio.h> #include <stdlib.h> #define MIN -3 #define MAX 100 #define WARTE sleep(3) #define NULLDIV "Programmfehler: Division durch 0!" #define FORMAT "%3d %f\n" main () { int i; for (i = MIN; i <= MAX; i++) { if (i == 0) puts(nulldiv); else printf(format, i, 1./i); } } WARTE;

8 C-Kurs (ZDV) Übersetzung und Präprozessor 4-8 Durch Ersetzung entsteht also folgender Text: main () { int i; for (i = -3; i <= 100; i++) { if (i == 0) puts("programmfehler: Division durch 0!"); else printf("%3d %f\n", i, 1./i); } } sleep(3); Die folgende Ersetzung erzeugt einen Fehler: #define WERT 17,5 main() { double x = WERT; }... Das merkt aber erst der Compiler. Ist der Ersetzungstext zu lang für eine Zeile, so kann er auf der nächsten Zeile fortgesetzt werden, wenn die Zeile mit Backslash beendet wird: #define DELAY {int i, j; for (i = 1; i < ; i++)\ j = i*i/i;} Makros Namen mit Parametern haben die Form #define name(p1,..., pn) text Die Auswertung eines Makroaufrufs geht folgendermaßen vor sich: Enthalten die Argumente des Makroaufrufs selbst Makros, so werden diese ersetzt. Die so entstandenen Argumente werden im Ersetzungstext überall dort eingesetzt, wo sich entsprechende Makroparameter befinden.

9 C-Kurs (ZDV) Übersetzung und Präprozessor 4-9 Der so entstandene Ersetzungstext wird für den Makroaufruf eingesetzt. Beispiel: #define HOCH2(a) #define BIN3(a, b) a*a (a+b)(a-b) x = HOCH2(2); /* x = 2*2; */ y = BIN3(1, 2); /* y = (1+2)(1-2); */ z = BIN3(HOCH2(2), 3); /* z = (2*2+3)(2*2-3); */ Makro-Operatoren Für die Behandlung von Parametern in Ersetzungstexten stehen die Operatoren # und ## zur Verfügung. #p setzt im Ersetzungstext das Argument, das für p eingesetzt wird, in Anführungsstriche, z.b.: #define NAME(n) #n puts(name(hugo)); /* puts("hugo"); */ p1##p2 verkettet im Ersetzungstext die beiden Argumente, die für p1 und p2 eingesetzt werden, z.b.: #define CAT(a, b) a##b x = CAT(sq, rt)(2); /* x = sqrt(2);*/ Löschen eines Namens Durch #undef name wird ein Name (symbolische Konstante oder Makro) wieder gelöscht, d.h. es kann anschließend nicht mehr benutzt, aber neu definiert werden. Existierte name nicht, so gibt der Präprozessor keine Fehlermeldung aus.

10 C-Kurs (ZDV) Übersetzung und Präprozessor Hinweise zum Gebrauch von Namen Beim Einsatz von Namen ist zu beachten: Ungeklammerte Zahlenausdrücke können zu semantischen Irrtümern führen: #define SUM1 3+4 #define SUM2 (3+4) printf("%d %d %d\n", SUM1*SUM1, (SUM1)*(SUM1), SUM2*SUM2); Das wird ersetzt zu: printf("%d %d %d\n", 3+4*3+4, (3+4)*(3+4), (3+4)*(3+4)); Stimmen zwei Namen so überein, daß der eine im anderen enthalten ist, so wählt der Präprozessor den längeren: #define A 1 #define B 2 #define AB 3 n = AB; /* n = 3; */ Sind zwei Namen gleich, so müssen auch ihre Ersetzungstexte gleich sein, sonst gibt der Compiler eine Warnung aus. Auf diese Weise wird vermieden, aus Versehen einen Namen zu redefinieren, der bereits in einer Header-Datei verwendet wurde. Z.B. ist in stdio.h definiert: #define BUFSIZ 8192 Daher ergibt folgende Definition eine Warnung: #include <stdio.h> #define BUFSIZ 100

11 C-Kurs (ZDV) Übersetzung und Präprozessor Vorbesetzte Namen Folgende Namen stehen mit vordefinierten Werten zur Verfügung: LINE Nummer der aktuellen Programmzeile. FILE Name der Datei, die gerade übersetzt wird. DATE Datum der Übersetzung in der Form mm dd yyyy. TIME Zeit der Übersetzung in der Form hh:mm:ss. STDC hat den Wert 1, wenn der Compiler ANSI-C entspricht, sonst 0. Z.B. ergibt die Anweisung printf("%d %s %s %s %d\n", LINE, FILE, DATE, TIME, STDC ); die Ausgabe 25 makros.c May :27: Bedingte Kompilierung Der Präprozessor kann mit Hilfe logischer Ausdrücke dazu veranlaßt werden, bestimmte Programmteile auszuwählen oder zu unterdrücken. Auf diese Art kann man z.b. C-Programme schreiben, die implementationsabhängige Besonderheiten berücksichtigen. Eine bedingte Auswahl mit mehreren Alternativen sieht formal so aus: #if ausdruck1 programmteil1 #elif ausdruck2 programmteil2... #else programmteiln #endif

12 C-Kurs (ZDV) Übersetzung und Präprozessor 4-12 Die #elifs und das #else können natürlich entfallen, das #endif jedoch muß immer da sein. ausdruckn wird als logische Bedingung betrachtet. Es sind folgende Ausdrücke möglich: #if zahl zahl ist ein konstanter Integerausdruck. Ergibt er einen Wert ungleich 0, so ist die logische Bedingung erfüllt. #if defined(name) oder #ifdef name Ist der Name name mit #define definiert worden, so ist die logische Bedingung erfüllt. #if! defined(name) oder #ifndef makro Ist der Name name nicht definiert, so ist die logische Bedingung erfüllt Bedingte Kompilierung in Header-Dateien Bedingte Kompilierung wird in Header Dateien verwendet, um zu vermeiden, daß sie mehr als einmal dazugeladen wird: #ifndef Name_h #define Name_h... #endif Für Name wird der Name der Header-Datei eingesetzt Bedingte Kompilierung für rechnerabhängige Besonderheiten Bedingte Kompilierung wird oft in einem Programm eingesetzt, das portabel sein soll, d.h. auf verschiedenen Rechnern oder unter verschiedenen Betriebssystemen laufen soll. Dazu das folgende Beispiel: Im UNIX-Cluster des ZDV werden Rechner unterschiedlicher Architekturen benutzt. Die Rechnerarchitektur wird in der UNIX-Variablen ARCH gehalten. gcc ist mit Hilfe der Option -D in der Lage, dem Präprozessor Namen zu übergeben, so als wären sie im Programm folgendermaßen definiert: #define name 1 Ist portabel.c ein Programm, das auf verschiedene Rechnerarchitekturen Rücksicht nehmen muß, so kann gcc nun so aufgerufen werden:

13 C-Kurs (ZDV) Übersetzung und Präprozessor 4-13 gcc -c portabel.c -D$ARCH portabel.c enthält dann folgende Präprozessorstrukturen: #if DECMIPS /*oder #ifdef DECMIPS*/... #elif ALPHA... #else... #endif

C - PRÄPROZESSOR. Seminar effiziente C Programmierung WS 2012/13. Von Christian Peter

C - PRÄPROZESSOR. Seminar effiziente C Programmierung WS 2012/13. Von Christian Peter C - PRÄPROZESSOR Seminar effiziente C Programmierung WS 2012/13 Von Christian Peter Themen Was sind Präprozessoren? Beispiele für Präprozessoren Funktionsweisen Der C - Präprozessor Der # Präfix #include

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen

Mehr

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung

Mehr

Präprozessor und make. einfache Makros Makros nehmen eine Textersetzung vor. Erst nach der Ersetzung muss gültiger C-Code vorliegen.

Präprozessor und make. einfache Makros Makros nehmen eine Textersetzung vor. Erst nach der Ersetzung muss gültiger C-Code vorliegen. Bevor der eigentliche Kompilier-Vorgang stattfindet, wird vom sogenannten eine Vorverarbeitung durchgeführt. Hierbei werden zum Beispiel Kommentare entfernt, aber auch explizite Anweisungen an den verarbeitet.

Mehr

Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen.

Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen. Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen. Modularisierung Zerlegung eines Programms in überschaubare Einheiten Die einzelnen Einheiten werden als Modul bezeichnet.

Mehr

Compiler und Präprozessor (1) Erstellen eines Projektes

Compiler und Präprozessor (1) Erstellen eines Projektes Compiler und Präprozessor (1) Erstellen eines Projektes Projekte bestehen meist aus mehreren Dateien, z.b. Quelldateien, Funktionssammlungen in Bibliotheken Zur Definition eines Projektes sind folgende

Mehr

8.1 Vom Quellcode zur ausführbaren Programm

8.1 Vom Quellcode zur ausführbaren Programm 8. Die Umgebung von C- 8.1 Vom Quellcode zur Programmausführung 8.2 Präprozessor-Anweisungen 8.3 Compiler, Assembler, Binder 8.4 Das Make-Utility 8.5 Datenübergabe vom und zum Betriebssystem 8-1 8.1 Vom

Mehr

Compiler Präprozessor Header Files

Compiler Präprozessor Header Files Freitagsrunde C-Kurs 2013 Compiler Präprozessor Header Files Tutorium 3 This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License Gliederung Compiler Präprozessor

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Der Präprozessor Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Der Präprozessor

Mehr

Vorlesung Informatik I

Vorlesung Informatik I Vorlesung Informatik I Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 11. Programmieren in C Der Compilierungsprozess 1 Aufbau eines C-Programms 1. Direktiven

Mehr

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 10: Präprozessor, Header und Bibliotheken Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i. Br. Vorlesung

Mehr

Vorlesung Informatik I

Vorlesung Informatik I Vorlesung Informatik I Universität Augsburg Wintersemester 2010/2011 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik Programmieren in C Der Compilierungsprozess 1 Aufbau eines C-Programms 1. Direktiven

Mehr

Der C-Präprozessor. Lukas Stabe

Der C-Präprozessor. Lukas Stabe Der C-Präprozessor Lukas Stabe Inhaltsverzeichnis 1 Einleitung 1 2 Makros 1 2.1 Parameterlose............................ 1 2.2 Parameterbehaftete......................... 3 2.3 Verbreitete Fehler..........................

Mehr

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+

Mehr

Grundlagen der Informatik Vorlesungsskript

Grundlagen der Informatik Vorlesungsskript Grundlagen der Informatik Vorlesungsskript Prof. Dr. T. Gervens, Prof. Dr.-Ing. B. Lang, Prof. Dr. F.M. Thiesing, Prof. Dr.-Ing. C. Westerkamp 16 AUTOMATISCHES ÜBERSETZEN VON PROGRAMMEN MIT MAKE... 2 16.1

Mehr

Einführung Makros Includes Errors und Warnings Pragmas Diverses. Der C-Präprozessor. Lukas Stabe. Universität Hamburg

Einführung Makros Includes Errors und Warnings Pragmas Diverses. Der C-Präprozessor. Lukas Stabe. Universität Hamburg Der C-Präprozessor Lukas Stabe Universität Hamburg Proseminar C - Grundlagen und Konzepte, 2013 Lukas Stabe C-Präprozessor 1 / 19 Inhalt 1. Einführung 2. Makros 3. Includes 4. Errors und Warnings 5. Pragmas

Mehr

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

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

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

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 16.1.2013 IAM Institut für Angewandte Mathematik C-Präprozessor: Einfügungen Standard-Header #include Fügt den Text der Headerdatei

Mehr

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h> Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include int main() { printf( hello world\n ); return 0; } Peter Sobe 1 Verschiedene Sprachkonzepte

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

Eine Mini-Shell als Literate Program

Eine Mini-Shell als Literate Program Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................

Mehr

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

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C 14 Vertiefung einiger Themen Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen in

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

Algorithmus: Kochrezept

Algorithmus: Kochrezept Algorithmus: Kochrezept Ziel: Menü mit drei Gängen für 4 Personen Grundlegende Spezifikation: 1. Vorspeise: Badische Flädlesuppe 2. Hauptgericht: Überbackene Schinkenröllchen mit Spargel 3. Dessert: Vanilleeis

Mehr

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 8 Das Konfigurationswerkzeug make...8-2 8.1 Modularisierung...8-2 8.2 Modulübersetzung...8-4 8.3 Konfigurationswerkzeug make und Aufbau eines Makefiles...8-8 8.3.1 Abhängigkeiten und Kommandos...

Mehr

Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE

Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE 754 Standard festgelegt. Es stehen sogenannte einfach

Mehr

Deklaration, Definition Global, Lokal Modularisierung make statische Variablen Präprozessor. Programmieren in C

Deklaration, Definition Global, Lokal Modularisierung make statische Variablen Präprozessor. Programmieren in C Übersicht Deklaration, Definition Global, Lokal Modularisierung make statische Variablen Präprozessor Deklarationen Funktionsprototypen deklarieren am besten vor der main-funktion (sonst Warnung vor Mischung

Mehr

Programmierkurs C++ Kapitel 6 Module Seite 1

Programmierkurs C++ Kapitel 6 Module Seite 1 Programmierkurs C++ Kapitel 6 Module Seite 1 (Quell-)Module Unter einem Modul versteht man einen Teil des Programms, der eigenständig übersetzt werden kann. In der Syntax der Programmiersprachen werden

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

Übung 1 - Betriebssysteme I

Übung 1 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11

Mehr

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

Mehr

C-Programmierung lernen

C-Programmierung lernen 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Andre Willms C-Programmierung lernen Anfangen, anwenden, verstehen

Mehr

Übung zu Grundlagen der Betriebssysteme. Einführungsveranstaltung 16.10.2012

Übung zu Grundlagen der Betriebssysteme. Einführungsveranstaltung 16.10.2012 Übung zu Grundlagen der Betriebssysteme Einführungsveranstaltung 16.10.2012 Termine Übungen wöchentlich, Dienstags 14 Uhr (c.t.), Raum E312 15 Uhr (s.t.), Raum E312 Jede Woche 1 Übungsblatt http://userpages.uni-koblenz.de/~mips/bs/uebung/

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

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

Der C Präprozessor. Inhaltsverzeichnis. von Christian Peter 31. März Denition 3. 2 Funktionsweisen 3

Der C Präprozessor. Inhaltsverzeichnis. von Christian Peter 31. März Denition 3. 2 Funktionsweisen 3 Der C Präprozessor von Christian Peter 31. März 2013 Inhaltsverzeichnis 1 Denition 3 2 Funktionsweisen 3 3 Benutzung des C-Präprozessors 4 3.1 Der # Präx............................. 4 3.2 Ersetzung von

Mehr

Übersicht. C Modularisierung. Präprozessor, Compiler, Linker. Präprozessor, Compiler, Linker. Präprozessor, Compiler und und Linker Linker

Übersicht. C Modularisierung. Präprozessor, Compiler, Linker. Präprozessor, Compiler, Linker. Präprozessor, Compiler und und Linker Linker Übersicht Präprozessor, Compiler und und Linker Linker Befehle des Präprozessors C Modularisierung Bedingte Kompilierung Modulare Programmierung Prinzipien der Modularisierung 1 2 Präprozessor, Compiler,

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

PIC16 Programmierung in HITECH-C

PIC16 Programmierung in HITECH-C PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden

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

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige

Mehr

Compiler Präprozessor Header Files

Compiler Präprozessor Header Files Freitagsrunde C-Kurs 2011 Compiler Präprozessor Header Files Tutorium 3 This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License Gliederung Compiler Präprozessor

Mehr

Was gehört (nicht) ins SVN?

Was gehört (nicht) ins SVN? Was gehört (nicht) ins SVN? Keine Dateien die aus anderen Dateien generiert werden (z.b. beim der Kompilierung).suo,.ncb (Intellisense),.user, das komplette Debug und Release Verzeichnis Nur Dateien die

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

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges

Mehr

Hochschule Für Angewandte Wissenschaften FH München Sommersemester Thomas Kolarz. Folie 1.

Hochschule Für Angewandte Wissenschaften FH München Sommersemester Thomas Kolarz. Folie 1. Praktikum Btib Betriebssysteme t I Hochschule Für Angewandte Wissenschaften FH München Sommersemester 2010 thomas.kolarz@hm.edu Folie 1 Vorbereitung Booten Sie den Rechner unter Linux und melden Sie sich

Mehr

ATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 04 - Der Preprozessor

ATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 04 - Der Preprozessor Teil 01 - Einführung 1 Eine Einführung in C 1.1 Warum C? 1.2 Wie entstand C? 1.3 Der AVR-Mikrocontroller in einem eingebetteten System 1.4 1.5 Editieren von Quell-Dateien Teil 02 - Aufbau eines C-Projektes

Mehr

JSP Direktiven. Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt JSP

JSP Direktiven. Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt JSP JSP Direktiven Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt werden JSP Vorverarbeitung JSP* entfernt / ersetzt Direktiven sammelt

Mehr

Softwarepraktikum: Einführung in gcc / g++

Softwarepraktikum: Einführung in gcc / g++ Softwarepraktikum: Einführung in gcc / g++ (Eingebettete Systeme und Robotik),, http://ai3.inf.uni-bayreuth.de /home/db_lehre/softwarepraktikum/einfuehrungsvortraege/gcc-vortrag.01.sxi Unterschied gcc

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

C- Kurs 06 Übersetzung & Module

C- Kurs 06 Übersetzung & Module C- Kurs 06 Übersetzung & Module Dipl.- Inf. Jörn Hoffmann jhoffmann@informaek.uni- leipzig.de Universität Leipzig InsEtut für InformaEk Technische InformaEk Übersetzung Überblick Übersetzung mit Modulen

Mehr

Organisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben

Organisatorisches. Übungsleiter: Karsten Otto Homepage:  Aufgaben Organisatorisches Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss04/sysi/ Aufgaben Montags im Netz Vorbesprechung Dienstag/Mittwoch in den Übungen Abgabe

Mehr

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

ATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 02 - Aufbau eines C-Projektes Teil 01 - Einführung 1 Eine Einführung in C 1.1 Warum C? 1.2 Wie entstand C? 1.3 Der AVR-Mikrocontroller in einem eingebetteten System 1.4 1.5 Editieren von Quell-Dateien 2 Was ist ein C-Projekt? 2.1 Erzeugen

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

10 Die Programmiersprache C99: Zusammenfassung

10 Die Programmiersprache C99: Zusammenfassung 10 Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 25. September 2014, 18:40 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife 303 Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304 305 for-schleifen sind in Aktivitätsdiagrammen

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

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

Mehr

Definition Compiler. Bekannte Compiler

Definition Compiler. Bekannte Compiler Compiler Inhalt: Definition Compiler / bekannte Compiler Klassifikationen von Compilern Analyse-Synthese-Modell der Kompilierung Analyse des Quellprogramms Synthesephase Die Phasen eines Compilers Symboltabellenverwaltung

Mehr

Leseprobe. Norbert Heiderich, Wolfgang Meyer. Technische Probleme lösen mit C/C++ Von der Analyse bis zur Dokumentation ISBN:

Leseprobe. Norbert Heiderich, Wolfgang Meyer. Technische Probleme lösen mit C/C++ Von der Analyse bis zur Dokumentation ISBN: Leseprobe Norbert Heiderich, Wolfgang Meyer Technische Probleme lösen mit C/C++ Von der Analyse bis zur Dokumentation ISBN: 978-3-446-42382-4 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42382-4

Mehr

Das erste C++ Programm

Das erste C++ Programm Das erste C++ Programm // Program: power8.c // Raise a number to the eighth power. #include int main() { // input std::cout > a; // computation int

Mehr

U1 3. Übung U1 3. Übung. Die Kommandos auf den folgenden Folien dienen der Veranschaulichung. Sind nicht direkt auf die Übungsaufgabe übertragbar

U1 3. Übung U1 3. Übung. Die Kommandos auf den folgenden Folien dienen der Veranschaulichung. Sind nicht direkt auf die Übungsaufgabe übertragbar U1 3. Übung U1 3. Übung Besprechung Aufgabe 0 Make und Makefiles Aufgabe 2 U1-1 Hinweise Die Kommandos auf den folgenden Folien dienen der Veranschaulichung Sind nicht direkt auf die Übungsaufgabe übertragbar

Mehr

Programmentwicklung mit C++ (unter Unix/Linux)

Programmentwicklung mit C++ (unter Unix/Linux) Programmentwicklung mit C++ (unter Unix/Linux) Erste Schritte Der gcc - Compiler & Linker Organisation des Source-Codes & Libraries Automatische Programmgenerierung: Make Birgit Möller & Denis Williams

Mehr

Nuetzlicher Kleinkram

Nuetzlicher Kleinkram Ein paar Hilfestellungen zur Arbeit unter Linux/Unix FB Physik Freie Universität Berlin Computerphysik WS 2007/2008 1 2 3 user@ host :~ > gcc -o programm quelltext. c macht gleich mehrere Dinge auf einmal

Mehr

Kapitel 2. Einfache Beispielprogramme

Kapitel 2. Einfache Beispielprogramme Kapitel 2 Einfache Beispielprogramme 2.1 Ausgabe auf dem Bildschirm 2.2 Lokale Variablen, Ausdrücke und Schleifen 2.3 Zahlen von der Tastatur einlesen 2.4 Formatierung bei der Ausgabe 2.5 Zusammenfassung

Mehr

Programmieren lernen mit Perl

Programmieren lernen mit Perl Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete

Mehr

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe Aufgabe 6: Häuser verwalten - dynamisch Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten

Mehr

Technisches Programmieren in C++

Technisches Programmieren in C++ Technisches Programmieren in C++ Karl Riedling Institut für Sensor- und Aktuatorsysteme 2 Allgemeines Die Rolle des Präprozessors in C++ 3 4 C++- (und Standard-C-) Programme werden einer Vorverarbeitung

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Christof Beyer Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 7-1 Bisher eingeführt war für Namen nur der Datentyp char. Dieser erlaubt das Speichern

Mehr

2Binden 3. und Bibliotheken

2Binden 3. und Bibliotheken 3 Vom C-Programm zum laufenden Prozess 3.1 Übersetzen - Objektmodule 1Übersetzen 3. - Objektmodule (2) Teil III 3Vom C-Programm zum laufenden Prozess 2. Schritt: Compilieren übersetzt C-Code in Assembler

Mehr

Werner Achte rt DATA BECKER

Werner Achte rt DATA BECKER Werner Achte rt. DATA BECKER Inhaltsverzeichnis 1. Einführung 21 1.1 Entwurf von Anwendungssystemen 23 1.2 Entwicklung eines Programms 25 1.3 Objektorientierte Programmierung 29 1.4 Darstellung objektorientierter

Mehr

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen 1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

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

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002 1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben

Mehr

Kurzeinführung in C. Johannes J. Schneider 27.10.2004

Kurzeinführung in C. Johannes J. Schneider 27.10.2004 Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Bash-Skripting Linux-Kurs der Unix-AG

Bash-Skripting Linux-Kurs der Unix-AG Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 13.06.2012 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian

Mehr

Kapitel 5: Syntaxdiagramme und Grammatikregeln

Kapitel 5: Syntaxdiagramme und Grammatikregeln 5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische

Mehr

Einführung in C. EDV1-04C-Einführung 1

Einführung in C. EDV1-04C-Einführung 1 Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags

Mehr

Übersicht Shell-Scripten

Übersicht Shell-Scripten !!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,

Mehr

Bash-Skripting Linux-Kurs der Unix-AG

Bash-Skripting Linux-Kurs der Unix-AG Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 07.01.2013 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian

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

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG Shell-Scripting Linux-Kurs der Unix-AG Benjamin Eberle 1. Februar 2016 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich

Mehr

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG Shell-Scripting Linux-Kurs der Unix-AG Andreas Teuchert 8. Juli 2014 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich

Mehr