Gegenseitiger Funktionsaufruf

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Neuling
Beiträge: 33
Registriert: Do 30. Dez 2021, 01:08
OS, Lazarus, FPC: Windows 10 (L 2.2.0 FPC 3.2.2)
CPU-Target: 64Bit

Gegenseitiger Funktionsaufruf

Beitrag von Neuling »

Hallo
Ich habe eine - vielleicht naive - Frage. Kann man eine Funktion A bei Bedarf eine Funktion B aufrufen lassen und die Funktion B die Funktion A. Das scheint nur für einen der beiden Fälle möglich zu sein, nämlich für die aufrufende Funktion, die im Programm nach der aufgerufen Funktion steht. Lässt sich dieses Problem umgehen? Ansonsten muss ich mein Projekt Langzahlarithmetik neu aufbauen. Ich danke im Voraus für Vorschläge.

Neuling
Ich nehme jede berechtigte Kritik an. Es sei denn, diese fällt von oben herab vor meine Füße.
Programmieren macht Spaß.


wp_xyz
Beiträge: 4099
Registriert: Fr 8. Apr 2011, 09:01

Re: Gegenseitiger Funktionsaufruf

Beitrag von wp_xyz »

Neuling hat geschrieben:
So 9. Jan 2022, 18:37
Ich habe eine - vielleicht naive - Frage. Kann man eine Funktion A bei Bedarf eine Funktion B aufrufen lassen und die Funktion B die Funktion A. Das scheint nur für einen der beiden Fälle möglich zu sein, nämlich für die aufrufende Funktion, die im Programm nach der aufgerufen Funktion steht. Lässt sich dieses Problem umgehen? Ansonsten muss ich mein Projekt Langzahlarithmetik neu aufbauen. Ich danke im Voraus für Vorschläge.
Du musst für die zweite Funktion vor ihrere Verwendung eine "forward"-Deklaration machen, also nur die Deklaration, ähnlich wie im Interface-Teil einer Unit. Die Implementierung kann später folgen. Nun kennt der Compiler die zweite Funktion, und du kannst sie aus der ersten Funktion aufrufen.

Code: Alles auswählen

function A(x: Integer): Integer; forward;

function B(x, y: Integer): Integer;
begin
  // implementieren; kann A() aufrufen
 end;
 
 function A(x: Integer): Integer;
 begin
   // implementieren; kann B() aufrufen
 end;
Zuletzt geändert von wp_xyz am So 9. Jan 2022, 19:52, insgesamt 1-mal geändert.

Neuling
Beiträge: 33
Registriert: Do 30. Dez 2021, 01:08
OS, Lazarus, FPC: Windows 10 (L 2.2.0 FPC 3.2.2)
CPU-Target: 64Bit

Re: Gegenseitiger Funktionsaufruf

Beitrag von Neuling »

Danke für die Antwort. Ich sollte wohl erst meine Nase in die Literatur stecken und dann programmieren. Ich werde es versuchen. Noch einmal ein herzliches Danke.

Neuling
Ich nehme jede berechtigte Kritik an. Es sei denn, diese fällt von oben herab vor meine Füße.
Programmieren macht Spaß.

Antworten