Deklaration von Struktur
-
hallo
ich habe hier einen pascal code, den ich in c++ übersetzen muss. klappte bis jetzt auch ganz gut, bis ich auf eine deklaration gestoßen bin, die ich absolut nicht interpretieren kann. hab schon im netz und ich büchern geschaut. ergebnis = nichts
folgendes steht in pascal:
TYPE Proc = PROCEDURE;und in einer Funktion in Pascal wird dann das gemacht:
DoThis(InitK : Proc)Also ich weiß echt nicht, wie wo was und warum. Ich könnte mir vorstellen, dass ich das in c++ irgendwie in eine Struktur packen muss, aber was steht dahinter?
-
Könnte das ein Funktionspointer (bzw. Prozedurpointer) sein? Kriegst du raus, wenn du guckst, mit welchem Argument diese Funktion aufgerufen wird.
In C++ etwa so:
// den Typ Proc als Funktionszeiger definieren // (nicht unbedingt notwendig, aber um die Konstellation in dem // Pascal-Programm widerzuspiegeln) typedef void (*Proc)(); // bzw. anders, die Signatur muss mit dem Argument übereinstimmen // Deklaration von DoThis void DoThis(Proc p); // irgendeine Funktion, deren Signatur mit dem Typ Proc übereinstimmt // (war oben als void-Funktion ohne Argumente definiert) void foobar(); // DoThis aufrufen und die Adresse von foobar übergeben DoThis(foobar);EDIT: Erläuterungen hinzugefügt
-
ja genau
das ist ein Zeiger auf eine aktuelle Prozedur
krieg ich sowas im C++ auch hin?
-
das hat Bashar dir doch geschrieben!