Willkommen bei unserem C-Kurs!

Dieser Kurs richtet sich vor allem an diejenigen, welche die Sprache C von Anfang an lernen wollen. Es sind daher keinerlei Vorkenntnisse erforderlich.

Im Kurs wird der DJGPP-Compiler verwendet. Er ist eine Dos-Version des GNU-C Compilers (GCC), der ein frei kopierbarer Compiler ist. Im laufenden wird noch auf die Unterschiede zur Unix-Version des GCC eingegangen. Er wurde bewußt gewählt, da er frei kopierbar ist. Natürlich können auch andere Compiler verwendet werden. Die entsprechenden Befehle sind dort dem Handbuch zu entnehmen.

GCC und alle zugehörigen Pakete findet man unter http://www.delorie.com/djgpp/zip-picker.html
 
 
 
INSTALLATION DES COMPILERS:

Die folgende Vorgehensweise gilt für diejenigen, die Mitglieder von AOL sind. Alle anderen müssen die entsprechenden Hilfstexte der jeweiligen Compiler lesen.
 

Als erstes sollte ein Compiler zur Verfügung stehen. Der DJGPP befindet sich in der File-Library Programmieren/Kursmaterial unter dem File C-Compiler. Alle anderen, die den Kurs außerhalb AOL´s mitverfolgen, entnehmen bitte den Installationshinweisen des DJGPP-Packetes, wie sie den Compiler zum laufen bringen. Für alle anderen vereinfacht sich die Installation wie weiterführend beschrieben.

Achtung: Es sollte nachdem herunterladen mindestens 10 MB auf dem Laufwerk C: frei sein, da der Compiler ca. 6.2 MB benötigt und selber noch temporäre Dateien erzeugt. Nun folgendes in der Dos-Shell eingeben:

Es liegt nun eine Batchdatei ckurs.bat unter c:\ckurs welche alle nötigen Variablen setzt, die wir benötigen. Also entweder in der autoexec.bat am Ende ein c:\ckurs\ckurs einfügen, oder das Skript vor der Benutzung des C-Compiler starten.
 
 
 
BENUTZUNG DES COMPILERS

Da wir den Compiler installiert haben, wollen wir uns gleich überzeugen, das er auch einwandfrei funktioniert. Wie oben beschrieben, c:\ckurs\ckurs eingeben, wenn die Batchdatei noch nicht gestartet wurde.

Im Unterverzeichnis c:\ckurs\kurs befindet sich auch schon unser erstes Programm, welches wir im Anschluß als unsere erste Lerneinheit benutzen wollen.

Wir geben also ein:
 

cd \ckurs\kurs 
gcc test.c 

exe

Wenn alles ohne Probleme von statten ging, haben wir nun ein Programm, welches ?a.exe? heißt, erzeugt. Was ist nun passiert ? Mit gcc test.c starteten wir den Compiler und teilten ihm mit, das wir das Programm test.c compilieren möchten. Hier merken wir schon: Der Compiler kommt aus der UNIX-Welt : ) Er generiert ein Programm mit dem Namen a.out. Typisch UNIX und sehr unbrauchbar für uns. Wir tippen also exe ein. Diese Batchdatei ruft das Programm aout2exe auf. Das kann man zwar auch direkt machen, ist aber kürzer.

Das so entstandene Programm a.exe ist unser ausführbares Programm.

WICHTIG: C-Programme müssen (!) die Endung '.c' besitzen , C++-Programme die Endung '.cc' oder 'cpp' .
 
 
Compilieren unter Linux

Das compilieren unseres Programmes unter Linux ist ähnlich. Fast sogar schon einfacher. Da im Grundsystem der GCC schon integriert ist, brauchen wir uns nur noch den Compileraufruf anzuschauen.
 

gcc -o test test.c

Das war es schon. Der Compiler compiliert und linkt in einem Durchgang unser Programm test.c und erzeugt das ausführbare Programm test. Dieses kann sofort mit dem Aufruf ./test ausgeführt werden.

Diese Befehlsfolge funktioniert nicht unter DOS!

Als Programmieroberfläche kann wpe im Terminalmodus, oder xwpe unter X-Windows empfohlen werden. Sie entsprechen weitgehend den Borlandcompilern.
 
 
Was ist eigentlich RHIDE ?

Rhide ist eine Entwicklungsoberfläche, wie die von Borland C. Praktisch nicht ? Das Programm ist Freeware. Das Copyright liegt bei Robert Hoehne. Ihr findet die aktuelle Version unter ftp://ftp.urz.uni-heidelberg.de/pub/simtelnet/gnu/djgpp/v2apps oder im AOL-Programmierforum (Kennwort: Programmieren) unter Kursmaterial.
 
 
 
Und los geht's mit unserem ersten C-Programm!

Als erstes sollten wir uns natürlich anschauen, was in dem Programm steht:
 

    /* Dies ist unser erstes C-Programm im AOL C-Kurs */
    #include <stdio.h>
    void main( void
    {
    printf ("AOL C-Kurs\n");
    }

ACHTUNG! C unterscheidet zwischen Groß- und Kleinschreibung!
 
 
 
Die Grundstruktur

An unserem ersten Programm können wir schon alle Merkmale eines C-Programms sehen. Kommentare sind von einem /* am Anfang und einem */ am Ende umklammert. Der Compiler überliest so alles was sich innerhalb dieses Kommentars befindet:
 

    /* Dies ist ein Kommentar */

Der Befehl #include weißt an, das eine Programmsammlung in das Programm eingebunden werden soll. C ist eine Programmiersprache, die in ihren Grundzügen nur aus wenigen Befehlen aufgebaut ist. Das ist eine ihrer großen Stärken, da man sich später eigene Befehle programmieren kann. Das heißt aber auch: Selbst Grundfunktionen wie Bildschirmausgabe oder die Tastatureingabe sind kleine Unterprogramme, die explizit eingebunden werden müssen, da sonst der Compiler nicht weiß, was er zu tun hat. Fazit: C ist modular aufgebaut. Und zwar von Grund auf! Mit dem #include werden wir uns in einem späteren Kapitel noch ausführlicher zuwenden.

Nun kommen wir zu dem wichtigsten Modul , welches auf keinen Fall Fehlen darf!

Dem main -Modul. Es sagt dem Compiler, das dieses Modul unser Programm darstellt. Wenn es fehlen würde, wüßte der Compiler gar nicht, welches das Hauptprogramm ist und würde von daher nur Programmodule erzeugen, ohne uns auch mit nur einem funktionierenden Programm zu beglücken.

Alle anderen Module, die wir später schreiben können nur ausgeführt werden, wenn sie direkt oder indirekt vom Hauptprogramm aus aufgerufen werden!
Jedes Modul besteht aus einem Modulnamen und einem Körper. Der Modulkörper wird durch zwei geschweifte Klammern dargestellt. Alles, was sich in diesen Klammern befindet, gehört zum Modul.
 

Modul ( )

{

/* Dies ist der Inhalt des Moduls */

}

Zugegeben, dieses Modul ist recht nutzlos, da es nur eine Kommentarzeile enthält. Es ist aber recht anschaulich.Wie oben bereits beschrieben wurde: Ein Modulname zeichnet sich durch alle anderen aus: main ( ) !
Die Doppelklammer hinter dem Modulnamen ist zwingend, da dort  Übergabeparameter stehen können. Davon werden wir später noch Gebrauch machen wenn wir uns näher mit den Modulen befassen
 
 
 
printf

Zurück zu unserem Programm: Den einzigen Befehl, den wir hier benutzen, ist der ?printf ()? Befehl. Wie schon erwähnt, handelt es sich hierbei selber um ein Modul, dem übergeben wird, was auf dem Bildschirm ausgegeben werden soll.
 

printf ("AOL C-Kurs\n");

Es soll also der Text AOL C-Kurs auf dem Bildschirm ausgegeben werde. Jede Befehlszeile muß mit einem Semikolon abgeschlossen werden, damit der Compiler weiß, wann Befehlsende ist. Jetzt kommt natürlich der berechtigte Einwand: Was soll das ?\n? dort ? Bestimmte Zeichen wie \ oder auch % sind reservierte Zeichen, die dem Compiler sagen, das hier bestimmte Aktionen durchgeführt werden. ?\n? sagt: An dieser Stelle wird ein Zeilenvorschub eingefügt. Ansonsten würde einfach nach dem Text keine neue Zeile angefangen werde.
 

printf ("AOL "); 

printf ("C-Kurs\n");

Ist also das gleiche, was wir mit unserer einen Zeile oben bewirkt haben.
 

printf ("\nAOL C-Kurs\n\n");

Oberes würde also erst ein Zeilenvorschub, dann unseren Text und zwei Zeilenvorschübe auf dem Bildschirm ausgeben. Am besten sie probieren das einfach mal.
 
 
printf - Sonderzeichen

 

\n Zeilenvorschub , entspricht RETURN bei der Tastatureingabe
\t Tabulator , auf dem Bildschirm wird ein Tabulator [TAB] - Sprung gemacht
\b Backspace , letztes Zeichen wird gelöscht
\r Carriage Return , unter UNIX irrelevant. Unter DOS besteht ein Zeilenende aus \n\r
\f Irrelevant für Bildschirm und Tastatur, bewirkt unter einer Druckerausgabe einen Seitenvorschub (formfeed)
\0 NULL , wird intern für eine String-Endmarkierung verwendet. Wird manchmal auch bei Druckersequenzen benutzt.
\\ Backlash , erzeugt ein \ auf dem Bildschirm
\' Erzeugt ein Hochkomma auf dem Bildschirm
\" Erzeugt Anführungszeichen, die ja sonst schwerlich darstellbar sind

 
 
Übungsaufgaben

Soviel zum ersten Teil unseres C-Kurses! Natürlich werde ich das Ganze nicht ohne Übungsaufgaben auf sich beruhen lassen. Wenn jemand Verständnisfragen hat, bitte ich diese in das Pinboard Programmieren/C-Kurs-Talk zu schreiben. So kann gleich mehreren mit ähnlichen Problemen geholfen werden und es kann auch eine konstruktive Zusammenarbeit zwischen allen erfolgen!

Los geht?s:

1) Folgende Zeichenfolge soll mit Anführungszeichen ausgegeben werden. "C macht Spaß"

2) Selbiges soll mit ausgegeben werden ohne Anführungszeichen, dafür aber mit einem Zeilenvorschub zwischen jedem Wort.

3) Einfach mit den Sonderzeichen, die mit \ beginnen experimentieren.

Viel Spaß. Nächstes mal werden wir uns mit Variablen und dem einlesen von der Tastatur beschäftigen.
 
 
 
 
...das Obligatorische

Autor: Sebastian Cyris \ PCD Bascht

Dieser C-Kurs dient nur zu Lehrzwecken! Eine Vervielfältigung ist ohne vorherige Absprache mit dem Autor verboten! Die verwendete Software unterliegt der GPL und unterliegt der Software beiliegenden Bestimmungen zu deren Nutzung! Jede weitere Lizenzbestimmung die der benutzten Software beiliegt, ist zu beachten!