06.11.2013 Aufrufe

Dynamische Programmiersprachen - Fachgebiet ...

Dynamische Programmiersprachen - Fachgebiet ...

Dynamische Programmiersprachen - Fachgebiet ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!