Q.: Was ist C?
|
A.: C ist eine prozedurale Programmiersprache für allgemeine Anwendungen. C ist historisch eng mit
dem UNIX-Betriebssystem verbunden, wo die Sprache entwickelt wurde. Die Sprache C ist jedoch selbst nicht
von einem bestimmten Betriebssystem abhängig. Viele der wichtigen Ideen in C stammen von der Sprache BCPL.
BCPL beeinflusste C indirekt durch die Sprache B. C besitzt einerseits alle fundamentalen
Kontrollstrukturen, die für wohlstrukturierte Programme notwendig sind, ist andererseits aber auch eine
relativ maschinennahe Sprache. Im Gegensatz zu C++ ist C aber nicht objektorientiert.
|
|
Q.: Was ist C++?
|
A.: C++ ist eine Weiterentwicklung der funktionalen Sprache C. C++ ist insofern
eine Hybrid-Sprache, da sie sowohl funktionale Sprachelemente als auch objektorientierte
Erweiterungen besitzt. Programme sollten mit C++ leichter strukturierbar sein als in C.
|
|
Q.: Welche Kenntnisse benötige ich um C/C++ zu lernen?
|
A.: Je besser man sich mit dem Computer auskennt, desto schneller wird man
Programmieren lernen. Wer eine Vorstellung von der Funktionsweise des Computers
und/oder dem Betriebssystem hat, hat Vorteile beim Erlernen einer Programmiersprache.
Vorkenntnisse anderer Programmiersprachen sind nicht nötig, können aber das Verstehen
der Sprachkonzepte erleichtern.
|
|
Q.: Was ist ein Compiler?
|
A.: Ein Compiler ist ein Programm, das einen Text einer Quellsprache (z.B. C)
in einen Text einer Zielsprache (z.B. Maschinencode) übersetzt.
|
|
Q.: Woher bekomme ich einen Compiler?
|
A.: Hier gibt es mehrere Möglichkeiten. Man kann sich entweder einen kaufen,
was aber besonders bei professioneller Programmentwicklung sehr teuer sein kann, oder man kann sich
verschiedene frei verfügbare Compiler downloaden, hier wären
insbesondere der Borland Compiler 5.5 für DOS bzw. Windows und der GNU-Compiler
für Linux zu nennen, der mittlerweile auch in einer Dos-Variante, dem DJGPP,
frei verfügbar ist. Downloadmöglichkeiten findet Ihr unter
Links
|
|
Q.: Was bedeutet objektorientierte Programmierung?
|
A.: Im Mittelpunkt der objektorientierten Programmierung stehe Objekte.
Objekte sind die Instanzen einer Klasse, die die Methoden und Attribute enthält,
die das Objekt kennzeichnen. Somit stehen Methoden und Attribute, im Gegensatz zur
funktionalen Programmierung, in einem engen Verhältnis. Dies hat den Vorteil,
dass sich Programme besser strukturieren lassen, und der Zugriff auf Attribute
durch den Anwender eingeschränkt werde kann. Ein weitere Vorteil der Objektorientierung
ist die Vererbung von Klassen, die es ermöglicht Klassen um Methoden und Attribute zu
erweitern oder Methoden zu überschreiben.
|
|
Q.: Wo bekomme ich einen C/C++ - Decompiler?
|
A.: Nirgends! Einmal compilierte Dateien lassen sich nicht wieder decompilieren.
Das Prinzip der Open Source wäre überflüssig wenn es einen Decompiler geben würde , weil
sonst fast alles z.B. Windows, Word, Quake usw. um Quellcode verfügbar wäre. Es ist nur
möglich ausführbare Dateien zu disassemblieren, wodurch man aber "nur" Assemblercode
erhält.
|
|
Q.: Was ist ein Preprozessor?
|
A.: C realisiert bestimmte Sprachkonzepte mit einem Preprozessor, den man sich
als selbständigen ersten Schritt der Übersetzung vorstellen kann. Zwei Eigenschaften werden
am häufigsten benutzt: #include, um den Inhalt einer Datei während der Übersetzung
einzufügen, und #define, um einen Namen durch eine beliebige Folge von Symbolen zu
ersetzen. Der Preprozessor selbst kann mit bedingten Anweisungen #if, #endif
etc. kontrolliert werden, die während seiner Ausführung bewertet werden.
|
|