|
|
||
|
|
||
| .. Begriffe, Regeln, Kommentare | ||
|
|
||
|
Die Unterprogramme von C
Ein Programm der Programmiersprache C besteht ausschließlich aus Unterprogrammen, also solchen Programmteilen, die wiederum aus anderen Programmteilen heraus aufgerufen werden und nach dem Durchlauf zu dem sie aufrufenden Programm zurückkehren. Wegen einiger Besonderheiten der C-Unterprogramme nennt man diese Unterprogramme bei C, .. Funktionen. Eine C-Funktion ist also ein Unterprogramm, das aus anderen Unterprogrammen heraus aufgerufen werden, und seinerseits weitere Unterprogramme aufrufen kann. Dies kann beliebig oft geschehen. Das Unterprogramm oder besser die Funktion, die von dem Betriebssystem als erste aufgerufen wird, muss in einem C-Programm den Namen .. main() .. besitzen. Die anderen Funktionen können beliebige Namen besitzen. Die Funktion main() ist die Startfunktion eines C-Anwender-Programms. Beispiel: |
||
// tunix
// -----
// vollständiger C-Quelltext einer Funktion main(), die zu einer
// lauffähigen .exe-Datei übersetzt werden kann, nur leider nix
// tut.
void main(void)
{
}
// Dieser Quelltext wird vom Compiler der IDE (der integrierten
// Entwicklungsumgebung in ein Maschinenprogramm übersetzt, das
// dann den Namen tunix.exe besitzt. exe von execute
// (ausführbares Programm)
|
||
| Funktionen (also Unterprogramme) werden in der Regel dazu benutzt, um Zahlen und Zahlenfolgen (kurz Daten) zu bearbeiten. Die Daten müssen dabei im Hauptspeicher des Rechners abgelegt sein und die Speicherzellen in denen sie abgelegt sind sollten einen Namen besitzen über den sie eindeutig angesprochen werden können. Da die abgelegten Daten normalerweise veränderbar (variabel) sind, spricht man bei ihnen von Programmvariablen, oder wenn sie einem Unterprogramm als Hilfsgrößen dienen, z.B. als Positionsangaben für die Ausgabestelle auf dem Bildschirm, dann kann man sie als Parameter bezeichnen. | ||
|
Regeln
für die Schreibweise von Variablen und Funktionen
1. Groß- und Kleinschreibung In der Programmiersprache C wird zwischen Groß- und Kleinschreibung unterschieden. So stellt der Funktionsname main() eine andere Funktion dar, als Main() oder MAIN() usw.. Es ist deswegen bei allen Beispielen zwingend auf die Schreibweise der Funktionen und Variablen zu achten .. und main() muss main() geschrieben werden. 2. Gültige Länge von Namen Variablen- oder Funktionsnamen sind bis auf 31 Stellen signifikant, werden also bis zum 31. Buchstaben vom Compiler auf Unterschiede untersucht. Sind sie bis zu dieser Stelle gleich, erkennt das Übersetzerprogramm, der Compiler, keine Unterschiede und behandelt vom Namen her unterschiedliche Objekte gleich. Er wird also den Quelltext falsch übersetzen. 3. Gültige Zeichen für Namen Variablen- oder Funktionsnamen müssen mit einem Buchstaben oder dem Sonderzeichen Unterstrich '_' beginnen. Sie dürfen dann Buchstaben oder Ziffern enthalten. Das einzige zugelassene Sonderzeichen ist das Zeichen Unterstrich '_'. Andere Sonderzeichen dürfen nicht vorkommen, die Umlaute ä,ü,ö,Ä,Ü,Ö,ß sind verboten. Die Hersteller von Compilern, können die oben genannten Regeln 2 und 3 außer Acht lassen. Es entstehen aber erhebliche Probleme wenn ein zweiter Compiler auf dem ein Programm übersetzt werden soll, dies nicht tut. Dann ist eine unnötige Fehlersuche angesagt. |
||
|
Die
grundlegenden Elemente beim Programmieren...
Die Speicherzelleninhalte der Bytes eines RAM oder ROM Speichers, die letzterdings nur aus Zahlen mit Werten zwischen 0 und 255 bestehen, unterteilen sich aus der Sicht eines Programmierers in Daten und Programme. Hiervon sollen die Programme, die Daten wunschgemäß verändern. Zur Erstellung eines Programms benötigt der Programmierer Befehlsworte. Diese lassen sich für wiederkehrende Aufgaben zu Programmblöcken zusammenfassen. Man nennt diese Programmblöcke dann ein Unterprogramm oder wie in C, eine Funktion. Die Unterprogramme können sich gegenseitig, in beliebiger Abfolge und Durchmischung, aktivieren (aufrufen). Ihre wesentliche Eigenschaft ist, dass sie, nachdem sie durchlaufen wurden, immer wieder zu der vorhergehenden Aufrufstelle zurückkehren. Genau genommen zu dem, nach der Aufrufstelle folgenden Befehl. Die obige main()-Funktion wird also zum Betriebssystem zurückkehren, nachdem ihr Ende erreicht wurde, womit das (Unter)Programm tunix.exe beendet ist. Die Befehlsworte aus denen die Unterprogramme zusammengesetzt wurden, sollen folgend besprochen werden. Allerdings gibt es programmiertechnische Problemstellungen, die tief in die schaltungstechnische Funktion eines Computers reichen. So ist es ein Segen, dass bereits wissende Programmierer eine Vielzahl von Funktionen zusammengestellt haben, die man ohne die Kenntnis der konkreten Lösungsansätze dieser Problemstellungen benutzen kann. Allerdings muss man nun die 'Gebrauchsanweisung' dieser Funktionen lesen. Diese Funktionen sind in der statischen Bibliothek zu finden. |
||
|
|
1. |
Daten |
Zahlen, Zeichen, Zeiger .. als Konstante oder in Variablen, die durch ein Programm bearbeitet werden sollen |
|
|
|
2. |
Programme |
Sie bestehen im Zustand eines Quelltextes aus .. |
|
|
|
2.1 |
Befehlsworten |
(Schlüsselworten), also Zeichen oder Literalen für Grundrechenarten, Vergleiche, Schleifenkonstrukte, return, goto .. Befehle usw. |
|
|
|
2.2 |
Funktionen() |
Unterprogrammen, das sind Programmblöcke, die bei C .. Funktionen genannt werden, und die aus den Befehlsworten gebildet werden. |
|
|
Die
statische Bibliothek 'Library.lib'
Zum
Sprachumfang der Sprache C gehört eine Bibliothek, das ist
eine Programmsammlung, die bereits eine Vielzahl von Funktionen
(Unterprogrammen) enthält. Aus diesen Unterprogrammen, sowie
den Befehlsworten können eigene Funktionen geschrieben
werden, die ihrerseits wiederum zur Erstellung neuer Funktionen
genutzt werden können. Eine kleine Sammlung von
Gebrauchsanweisungen zu diesen Funktionen ist hier
zu finden.
Deklaration, Definition und Initialisation Eigene Funktionen oder solche aus der statischen Bibliothek, sowie Daten die in einem Programm-Quelltext benutzt werden, müssen vor ihrer Benutzung 'deklariert' werden. Das meint, der Compiler muss vor ihrem ersten Auftreten, Kenntnis von ihnen erhalten haben. Sie müssen ihm 'erklärt=deklariert' worden sein, damit er den benötigten Speicherplatz beim Betriebssystem anfordern kann. Geschieht dies nicht, so erhält der Programmierer eine Vielzahl von Fehlermeldungen. Achten Sie bei den Kapiteln über 'Zahlen, Variablen und Konstanten' sowie bei den 'Funktionen' unbedingt auf die Darstellung der Syntaxregeln für die .. |
||
|
|
Deklaration .. |
Erklärung an den Compiler, das es eine Variable oder Funktion gibt und welchen Variablentyp letztere benutzt. (Zweck Fehlerkontrolle. Bei den Bibliotheksfunktionen befinden sich die Deklarationen in den Headerdateien.h, eigene Funktionen muss man selber deklarieren. |
|
|
|
Definition .. |
Belegung von RAM-Speicher durch das Schreiben einer Funktion bzw. das Einrichten des Speichers für eine Variable. Bei den Bibliotheksfunktionen befinden sich die Definitionen in der statischen Library.lib, die Definition eigener Funktionen findet normalerweise im eigenen Programm statt. |
|
|
|
Aufruf .. bei Funktionen |
Benutzen einer definierten Funktion. Normalerweise im eigenen Programm |
|
|
|
Initialisation .. bei Variablen |
Die erste Wertzuweisung an die Speicherzellen einer Variablen. Normalerweise im eigenen Programm. |
|
|
|
|
|
|
Zwei
grundlegende Syntax-Vereinbarungen
Die Syntax ist die Vereinbarung darüber, wie ein Wort, Satz oder eine Programmierzeile zu schreiben ist. Lehrer sind schon streng, aber Compiler (Übersetzerprogramme) sind strenger. Wenn Sie einen Syntaxfehler erkennen, werden sie nicht weiterarbeiten, bis der Fehler behoben wurde. Die beiden unten genannten Syntaxregeln führen durch ihre Missachtung häufig zu Fehlermeldungen. |
||
|
||
|
||
| Fehler im Programm Fehler die durch eine falsche Programmierung entstehen, können zu zwei verschiedenen Zeitpunkten auftreten. | ||
|
||
|
||
|
|
.de