Moin, moin.
Ich bin gerade auf ein Problem gestoßen. Und zwar rufe ich eine Funktion über einen Umweg rekursiv auf. Ich weiß nicht, ob man das jetzt immer noch "rekursiv" nennt aber ist auch nicht entscheidend.
Funktion A ruft Funktion B auf Funktion B ruft danach Funktion A mit anderen Parametern auf. Durch eine Abbruchbedingung in Funktion B hat das Ganze auch irgendwann ein Ende.
Nur kann Funktion A aber Funktion B nicht aufrufen, da sie erst später im Code vorkommt. Beim Vertauschen den Funktionen tritt logischerweise das gleiche Problem auf.
Was kann ich jetzt tun? Ich dachte mir, dass man dem Compiler vielleicht irgendwie sagen könnte, dass er den Quelltext mehr als nur einmal durchlaufen soll. Ist diese Idee total abwegig oder doch?
Hoffentlich weiß da jemand von euch was.
Grüße,
PelzigesWaldtier
Seite 1 von 1
[turbo Pascal] Funktionsaufruf Vor -deklaration Wie kann man das trotzdem machen?
Anzeige
#2
geschrieben 18. Oktober 2005 - 17:01
Sichtwort: Vorwärtsdeklaration!
function A(params...) : int; // hier weiß der Compiler, daß die Funktion A in dieser Form existiert
function B(params...) : int; // nur der Elegenz wegen
function A(params...) : int {
int blah=B(params); // da B seit weiter oben bereits bekannt ist, dann man es aufrufen
return 1;
}
function B(params...) : int {
int blah=A(params);
return 2;
}
function A(params...) : int; // hier weiß der Compiler, daß die Funktion A in dieser Form existiert
function B(params...) : int; // nur der Elegenz wegen
function A(params...) : int {
int blah=B(params); // da B seit weiter oben bereits bekannt ist, dann man es aufrufen
return 1;
}
function B(params...) : int {
int blah=A(params);
return 2;
}
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#3 _PelzigesWaldtier_
geschrieben 18. Oktober 2005 - 17:45
Ich danke
So muss es in Turbo Pascal aussehen:
-PW
So muss es in Turbo Pascal aussehen:
function (parameter: typ): ergebnistyp; forward;
-PW
Thema verteilen:
Seite 1 von 1