Dynamische Programmiersprachen - Fachgebiet ...
Dynamische Programmiersprachen - Fachgebiet ...
Dynamische Programmiersprachen - Fachgebiet ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2 WAS VERSTEHT MAN UNTER BINDEN ? 5<br />
auswahl und x deklariert, wobei die erste die Auswahl des Benutzers im späteren Programmverlauf<br />
speichern und die zweite als Zählervariable innerhalb einer Schleife, die<br />
zur Ausgabe der berechneten Werte auf dem Bildschirm dient, benutzt werden soll.<br />
Danach erfolgt die Deklaration einer besonderen Art von Variablen, eines sogenannten<br />
Funktionszeigers (engl. function pointer).<br />
Ein Funktionszeiger ist eine Variable, in der die Adresse einer Funktion, die sich im<br />
Speicher eines Computers befindet, abgelegt werden kann. Über diese Zeiger-Variable<br />
kann die von ihr referenzierte Funktion im weiteren Verlauf eines Programmes einfach<br />
durch Schreiben des Funktionszeigernamens, d.h. äquivalent zu einem normalen<br />
Funktionsaufruf, aufgerufen werden. Der Funktionszeiger ist also eine Referenz auf eine<br />
Funktion, äquivalent zum Namen der Funktion, jedoch mit dem Unterschied, daß die<br />
Bindung nicht statisch ist, sondern durch Veränderung des Wertes des Funktionszeigers<br />
auf eine andere Speicheradresse während der Laufzeit geändert werden und damit<br />
an eine andere Funktion gebunden werden kann. Funktionszeiger ermöglichen damit<br />
dynamische Bindung an Funktionen.<br />
Im weiteren nicht dargestellten Verlauf des Programms, was durch die drei Punkte<br />
repräsentiert werden soll, wird der Benutzer in einem Menu dazu aufgefordert, entweder<br />
die erste oder die zweite Funktion auszuwählen, von der anschließend eine Wertetablle<br />
im Bereich von 0 bis 10 ausgegeben werden soll. Die Auswahl des Benutzers wird in<br />
der Variable auswahl gespeichert und in der anschließenden if-Bedingung ausgewertet.<br />
Je nachdem ob der Benutzer zuvor die erste oder die zweite Funktion ausgewählt hat,<br />
also abhängig vom Wert der Variablen auswahl wird dem Funktionszeiger func die<br />
Adresse der ersten Funktion f1 oder der zweiten Funktion f2 zugewiesen. Durch diese<br />
Zuweisung wird der Funktionszeiger an die Funktion f1 oder f2 gebunden. Danach kann<br />
durch einfaches Schreiben seines Namens, abhängig von dessen Inhalt, die Funktion<br />
f1 oder f2 aufgerufen werden, was in der nachfolgenden Schleife erfolgt. Innerhalb<br />
der Schleife wird zusätzlich die Schleifenzählvariable x als Parameter der durch den<br />
Funktionszeiger referenzierten Funktion übergeben und anschließend der Rückgabewert<br />
auf dem Bildschirm ausgegeben.<br />
Der gleiche Mechanismus findet sich auch in objektorientierten <strong>Programmiersprachen</strong>,<br />
beispielsweise in C#, als Methodenzeiger (engl. delegate) oder bei Objective-C in Form<br />
von Selektoren wieder.