Compiler Präprozessor Header Files
|
|
|
- Anton Schumacher
- vor 8 Jahren
- Abrufe
Transkript
1 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
2 Gliederung Compiler Präprozessor Header Files
3 Hello World Revisited Datei hello.c #include <stdio.h> int main(){ } Kommandozeile $ gcc -o hello hello.c $./hello Hello, World! $ printf("hello, World!\n"); return 0; hello kann nach der Kompilierung wie jedes andere Unix Kommando ausgeführt werden 3
4 Der C Compiler 4
5 Kompilierung als mehrstufiger Prozess Quellcode-Dateien hello.c Header-Dateien stdio.h Präprozessor Modifizierter Quellcode Bibliotheken /usr/lib/libc.a Linker Compiler Objektdateien hello.o ausführbare Datei hello 5
6 Hello World bestehend aus mehreren Dateien Datei main.c extern hello(char* who); extern bye(char* who); int main(){ hello("world"); bye("world"); return 0; } Dateien hello.c und bye.c #include <stdio.h> hello(char* who) { printf("hello, %s!\n", who); } #include <stdio.h> bye(char* who) { printf("bye, %s!\n", who); } 6
7 Separate Kompilierung $ ls bye.c hello.c main.c $ gcc -c main.c $ gcc -c hello.c $ gcc -c bye.c $ ls bye.c hello.c main.c bye.o hello.o main.o $ 7
8 Linken $ gcc -o hello main.o hello.o bye.o $./hello Hello, World! Bye, World! $ 8
9 Makefiles Datei Makefile all: main main: main.o hello.o bye.o $(CC) -o hello main.o hello.o bye.o hello.o: hello.c $(CC) -c hello.c bye.o: bye.c $(CC) -c bye.c main.o: main.c $(CC) -c main.c clean: rm -f main main.o hello.o bye.o 9
10 Übungsaufgabe Kopiert euch die Beispieldateien und das Makefile in einen Ordner. Kompiliert die Dateien zunächst per Hand separat und linkt sie dann zusammen! Führt jedesmal ls aus! Löscht jetzt alle Objekt- und ausführbaren Dateien! Führt make aus und seht euch die Ausgabe an! Löscht die Datei bye.o! Führt erneut make aus und seht euch die Ausgabe an! 10
11 Typen von Fehlern Präprozessor Fehler, z.b. Compiler Fehler, z.b. Syntaxfehler Typfehler Linker Fehler, z.b. falsch geschriebene Präprozessoranweisung undefinierte symbolische Konstante undefined reference to `hello' collect2: ld returned 1 exit status Laufzeitfehler, z.b. divide by zero Speicherzugriffsfehler: segmentation fault / bus error 11
12 Der Präprozessor 12
13 Präprozessoranweisungen am Zeichen # zu Beginn der Anweisung zu erkennen der Präprozessor erkennt nur Zeilen beginnend mit # 13
14 Präprozessoranweisungen am Zeichen # zu Beginn der Anweisung zu erkennen der Präprozessor erkennt nur Zeilen beginnend mit # Einfügen von Dateien: Ersetzen von Text (Makros): #include #define Bedingte Kompilierung: #if, #ifdef, #ifndef, #else, #elif, #endif 14
15 Präprozessoranweisungen am Zeichen # zu Beginn der Anweisung zu erkennen der Präprozessor erkennt nur Zeilen beginnend mit # Einfügen von Dateien: Ersetzen von Text (Makros): #include #define Bedingte Kompilierung: #if, #ifdef, #ifndef, #else, #elif, #endif 15
16 Header Dateien 16
17 Header Dateien extern hello(char* who); extern bye(char* who); int main(){ hello("world"); bye("world"); return 0; } #include <stdio.h> hello(char* who) { printf("hello, %s!\n", who); } #include <stdio.h> bye(char* who) { printf("bye, %s!\n", who); } 17
18 Header Dateien Header Dateien erkennt man an der Endung ".h Sie sind Teil von Schnittstellen zwischen Systemen Sie enthalten: Funktions Deklarationen globale Variablen symbolische Konstanten Makros Datentypen (z.b. Strukturen) 18
19 Inkludieren von Header Dateien #include <name> sucht im Verzeichnis der Systemdateien wird verwendet, um Headerdateien, die vom System geliefert werden, einzubinden (z.b. #include <stdio.h>) #include "name" sucht zuerst im Verzeichnis der Quelldatei erst dann im Verzeichnis der Systemdateien wird normalerweise verwendet, um selbstgeschriebene HeaderDateien einzubinden (z.b. #include "debug.h") 19
20 I Compileroption (gcc) Erweitert beim Übersetzen eines Programmes die Liste der Verzeichnisse, in denen nach einer Datei gesucht wird. gcc Iinclude hello.c sucht nach stdio.h zuerst als include/stdio.h, und erst dann als /usr/include/stdio.h. 20
21 E Compileroption (gcc) Was geschieht nun aber eigentlich beim Inkludieren eines Files? Mit -E könnt ihr euch die Ausgabe des Präprozessors ansehen. Probiert's aus: Kommandozeile: $ gcc -E hello.c 21
22 Präprozessor Output von Hello World # 304 "/usr/include/stdio.h" 3 4 extern int printf ( const char * restrict format,...); 22
23 Problem: Mehrfachinklusion Datei foo.h #include bar.h Datei bar.h #include baz.h... Datei baz.h 23
24 Problem: Mehrfachinklusion Datei foo.h Datei bar.h #include bar.h #include baz.h #include baz.h Datei baz.h 24
25 Problem: Mehrfachinklusion Datei foo.h Datei bar.h #include bar.h #include baz.h #include baz.h Datei baz.h 25
26 Problem: Mehrfachinklusion Datei foo.h Datei bar.h #include bar.h #include baz.h #include baz.h Datei baz.h #include bar.h... 26
27 Problem: Mehrfachinklusion Datei foo.h Datei bar.h #include bar.h #include baz.h #include baz.h Datei baz.h #include bar.h... 27
28 Vermeidung von Mehrfachinklusion Datei foo.h #ifndef FOO_H #define FOO_H extern int foo(int x, int y); #endif Die nötigen Sprachmittel, um diesen Code verstehen zu können, werden wir uns im Folgenden aneignen 28
29 Makros Compiler Präprozessor Einfügen von Dateien: Linker Präprozessor #include Ersetzen von Text (Makros): Compiler #define Bedingte Kompilierung: #if, #ifdef, #ifndef, #else, #elif, #endif 29
30 Parameterlose Makros Syntax: #define NAME [replacement] Präprozessor ersetzt vor der Kompilierung jedes Vorkommen von NAME mit dem Ersetzungstext Fehlt das replacement, so ist der NAME dem System im Folgenden bekannt, anstatt undefiniert zu sein Um den semantischen Unterschied klarzumachen, sollten Makros immer GROSS geschrieben werden! Ein ausführliches Beispiel werden wir später betrachten 30
31 Makros mit Parametern Syntax: kein Leerzeichen Leerzeichen #define NAME( dummy1 [ [,dummy2],... ] )... dummy1... Parameterliste Tokenstring Beispiel: #define SIZEOF(array) sizeof(array)/sizeof(array[0]) 31
32 Ein Wort zur Warnung Da man sich mit Makros sehr, sehr leicht ins Knie schiessen kann, empfehle ich euch für den Fall, dass ihr tiefer ins Thema einsteigen wollt, dringend, euch die Folien vom Vorjahr anzugucken, bevor ihr anfangt, eigene Makros zu schreiben! 32
33 Bedingte Kompilierung Compiler Präprozessor Einfügen von Dateien: Linker Präprozessor #include Ersetzen von Text (Makros): Compiler #define Bedingte Kompilierung: #if, #ifdef, #ifndef, #else, #elif, #endif 33
34 Bedingte Kompilierung 34
35 Bedingte Kompilierung #ifdef _WIN32 /* do Windows specific stuff here */ #endif #ifdef APPLE /* do Mac specific stuff here */ #endif #ifdef linux /* do Linux specific stuff here */ #endif 35
36 Vermeidung von Mehrfachinklusion Datei foo.h #ifndef FOO_H #define FOO_H extern int foo(int x, int y); #endif Was bewirkt nun dieser Code? 36
37 Beispiel: Debugging int debug= 1; int main(){ if(debug) printf("entering main...\n ); if(debug) printf("exiting main...\n ); return 0; } 37
38 Ein einfaches Debugging Makro Datei debug.h #include <stdio.h> #define DEBUG #ifdef DEBUG #define LOG printf #else #define LOG if(0) printf #endif 38
39 Unser neues Hello World Datei hello.c #include debug.h int main(){ LOG("Hello World!\n"); return 0; } 39
40 Output des Präprozessors (gcc) $ gcc E hello.c weitere Zeilen # 11 "hello.c" int main(){ printf("hello, World!\n"); return 0; } $ 40
41 define per Kommandozeile (gcc) gcc [ Dmacro[=defn]...] infile $ gcc DDEBUG hello.c $ gcc DDEBUG DVERBOSE=2 hello.c 41
42 Unser neues Debugging Makro Datei debug.h #include <stdio.h> #ifndef VERBOSE #define VERBOSE 0 #endif #ifdef DEBUG #define LOG printf #else #define LOG if(0) printf #endif 42
43 Unser neues Hello World mit Debug Levels Datei hello.c #include debug.h int main(){ if(verbose >= 1) LOG("Hello World!\n"); return 0; } 43
44 Debug Levels mit bedingter Kompilierung Datei hello.c #include debug.h int main(){ #if VERBOSE>=1 LOG("Hello World!\n"); #endif return 0; } 44
45 Fancy Debugging Das Debugging-Makro kann man noch beliebig schöner und aussagekräftiger gestalten (Mit Angabe von Zeilennummer, Funktion, in der man sich gerade befindet, etc). Ihr könnt euch ja mal die Folien von vorigem Jahr angucken! 45
46 Übungsaufgabe Schreibt ein Makefile für unser neues Hello-WorldBeispiel! Definiert targets release, debug0 und debug1 für Debug-Builds mit verschiedenen verbosity levels! Beachtet, dass auch header-dateien als Abhängigkeiten angegeben werden müssen! Kompiliert euren Code für verschiedene DebugLevels und überzeugt euch anhand des Konsolensowie des Präprozessoroutputs, dass er funktioniert 46
47 Danke! 47
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
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
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
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.
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
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..........................
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
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.
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
Ü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/
Propädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) [email protected] Universität Leipzig Institut für Informatik Technische Informatik
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
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
Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
6. Grundlagen der Programmierung
Computeranwendung in der Chemie Informatik für Chemiker(innen) 6. Grundlagen der Programmierung Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL6 Folie 1 Dr. Jens Döbler Grundlagen
C- Kurs 06 Übersetzung & Module
C- Kurs 06 Übersetzung & Module Dipl.- Inf. Jörn Hoffmann [email protected] leipzig.de Universität Leipzig InsEtut für InformaEk Technische InformaEk Übersetzung Überblick Übersetzung mit Modulen
Ü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,
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).
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
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
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
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
5. Modulare Programmierung
C und C++ (CPP) 5. Modulare Programmierung Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für angewandte Wissenschaften [email protected] Marc
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
Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2
Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 29.10. Foliensatz 2 Modularisierung (T) Eigene Headerdateien und Bibliotheken (P) Arten der Parameterübergabe (P) Arrays und Strukturen
Modulare Programmierung und Bibliotheken
Modulare Programmierung und Bibliotheken Proseminar-Vortrag am 24.06.2011 von Ludwig Eisenblätter Ludwig Eisenblätter 1 von 25 Modulare Programmierung und Bibliotheken Inhaltsübersicht Motivation / Einleitung
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
Installationsanleitung
1. C Installationsanleitung C-Programmierung mit Hilfe von Eclipse unter Windows XP mit dem GNU C-Compiler (GCC) 2. Inhaltsverzeichnis 1. Einleitung... 3 2. Cygwin... 3 2.1 Cygwin-Installation... 3 2.2
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
Systemprogrammierung
Systemprogrammierung 3Vom C-Programm zum laufenden Prozess 6. November 2008 Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2008 SS 2006 SOS 1 (03-Pro.fm 2008-11-06 08.52) 3 Vom C-Programm
DAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
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
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
L4. Erster Schritt zum Programmieren
L4. Erster Schritt zum Programmieren 1 Programmierung in Hoch Beispielprogramme in FORTRAN, PASCAL und C Die Programmiersprache C Erstellung und Übersetzung eines C-Programms Das Programm Hello World Eingabe
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
Grundlagen der Programmierung
Grundlagen der Programmierung 5. Vorlesung 09.11.2016 1 Beispiel: Hello World #include Beginn Hauptprogramm int main() { Blockbeginn printf("hello World\n"); Einbinden der Headerdatei(en) für
1. Vom Sourcecode zum Programm
1. Vom Sourcecode zum Programm 1.1 Programmablauf source1.cpp source2.cpp header.h makefile Compiler Präprozessor Übersetzer Assembler object.obj object.obj Linker library.dll programm.exe Abbildung: Erstellung
Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"
Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte
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
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
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
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
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
Teil I Debuggen mit gdb
Teil I Debuggen mit gdb Wer kennt das nicht? $./a.out Segmentation fault Was tun dagegen? printf()s in den Code einfügen? Besser (und professioneller): Einen Debugger verwenden Wer kennt das nicht? $./a.out
DLLs (dynamic loaded libraries) mit MingW erstellen
DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:
Entwicklung mit mehreren Dateien
Frühjahrsemester 2011 CS104 Programmieren II Teil II: C++ Programmierung Kapitel 9: Entwicklungsprozess in C++ H. Schuldt Entwicklung mit mehreren Dateien In C++ ist es üblich, den Quelltext in mehreren
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
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
Linux Prinzipien und Programmierung
Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2011/2012 1 / 22 popen Programmentwicklung unter Linux make gcc, objdump, readelf 2 / 22 Die Funktion popen Im
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
Grundlagen der Informatik. Mathias Buhr
Grundlagen der Informatik 1 Übersicht - 2.Übung Rückblick 1. Übung Compiler prozedurale Programmierung in C Variablen Funktionen Kontrollstrukturen Literatur 2 Rückblick Information & Entropie Zahlensysteme
Übungen zu Systemprogrammierung 1 (SP1)
Übungen zu Systemprogrammierung 1 (SP1) Ü1-2 Speicherverwaltung Andreas Ziegler, Stefan Reif, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität
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
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
Mapra: C++ Teil 3. Felix Gruber. 29. April IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29.
Mapra: C++ Teil 3 Felix Gruber IGPM, RWTH Aachen 29. April 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29. April 2015 1 / 11 Themen vom letzten Mal Debuggen mit gdb Zusammengesetzte Datentypen
Kurzeinführung in C99
Kurzeinführung in C99 Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Compiler und Editoren - Was wird benötigt um ein Programm zu erstellen 2
Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7
Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7 Seminare / Praktikum M1/C1 : Mathe 13:15-14:45, C-Kurs 15:15-16:45h M2/C2 : C-Kurs 13:15-14:45, Mathe 15:15-16:45h M*
C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen
C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,
C-Programme kompilieren mit Visual Studio Express
C-Programme kompilieren mit Visual Studio Express Die Beispiele, Aufgaben und Lösungen zum Buch C als erste Programmiersprache können mit Visual Studio Express von Microsoft bearbeitet, kompiliert und
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
Ein- und Ausgabe. C - Kurs Mario Bodemann. 15. September 2010
Ein- und Ausgabe C - Kurs 2010 Mario Bodemann 15. September 2010 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License 1 / 46 Inhaltsverzeichnis 1 Wiederholung
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
Die Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
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
C++ - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Fehler abfangen Leibniz Universität IT Services Anja Aue Warnungen Hinweise auf riskanten Code. Eine Kompilierung wird nicht verhindert. Um größere Fehler zu
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
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
Hello world. Sebastian Dyroff. 21. September 2009
Hello world Sebastian Dyroff 21. September 2009 1 / 35 Inhaltsverzeichnis Organisatorisches Hello World Typen und Operatoren Programmfluss Weitere Konstrukte Nützliche Tipps 2 / 35 Inhalte dieser Veranstaltung
Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften
Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 1: Organisatorisches, Einführung in die Programmierung in C Patrick Schreier Abteilung für Angewandte Mathematik Vorlesung
C-Programme erstellen und ausführen
INE1 Informatik für Ingenieure 1 Praktikum 2 C-Programme erstellen und ausführen Aufgabe 1: Programm mit DevC++ erstellen In dieser Aufgabe erstellen wir ein erstes Programm mit DevC++, kompilieren es
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]+
Kompaktkurs C-Programmierung
Kompaktkurs C-Programmierung 26. 03. 2007 Franz Schenk Organisatorisches Vorlesung Accountvergabe Skriptverkauf Übungen: zwei Blöcke (13:15-14:45 / 14:45-16:15) Gruppenübung Rechnerübung Klausur Ferien:
Grundlagen der Informatik 12. Strukturen
12. Strukturen Strukturen und deren Komponenten Strukturen im Projekt Dynamisch erstellte Strukturen Strukturen und Operatoren Strukturen und Funktionen Einfach verkettete Liste Grundlagen der Informatik
Grundlagen der Programmierung
Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,
С 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
Propädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) [email protected] Universität Leipzig Institut für Informatik Technische Informatik
C-Programming Hands-on
C-Programming Hands-on Teil 1 Sebastian Meisner, [email protected] Fachgebiet Technische Informatik 1 Schnelleinführung in C Einführung Zeiger Häufige Stolpersteine Aufgaben Inhalt dieser Hands-on
Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4
Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 4 SS 2016
Crashkurs: Von Java nach C
Crashkurs: Von Java nach C Motivation: C ist eine relativ alte Sprache, warum darf ich sie dennoch lernen? Es ist möglich hoch optimierten und damit schnellen Code zu erzeugen C Compiler existieren für
