rekursive Funktionen Hilfe
-
Hallo Leute,
ich komme einfach seit Stunden nicht weiter. Die Lösung ist sicher ganz simpel.
Ich habe zwei rekursive Funktionern, die sich auch noch gegenseitig aufrufen:Programmaufbau :
#pragma hdrstop
//---------------------------------------------------------------------------
#include <fstream.h>
#include <iostream.h>
//---------------------------------------------------------------------------
#pragma argsusedconst long Unendlich = 1399999999;
const unsigned short int n = 6; // Wert soll später aus Datei gelesen werden
unsigned short int vektor[n];void Funktion1(unsigned short int mue,unsigned short int nue,unsigned short int sigma) {
.
Funktion1(mue,nue,0)
.
Funktion2(mue,nue,0)
.
}
void Funktion2(unsigned short int mue,unsigned short int nue,unsigned short int sigma) {
.
Funktion2(mue,nue,0)
.
Funktion1(mue,nue,0)
.
}int main()
return 0;
}Der Fehler der nun kommt beim ausführen:
[C++ Error] MFP_CProg.cpp(86): E2268 Call to undefined function 'Funktion1'
wenn ich alle Aufrufe zu Funktion1 wegmache geht compilierenwenn ich die Reihenfolge vertausche, also Funktion2 an den Programmanfang kopiere dann kommt:
[C++ Error] MFP_CProg.cpp(86): E2268 Call to undefined function 'Funktion2'
wenn ich alle Aufrufe zu Funktion2 wegmache geht compilierenwer kann mir helfe ?
Grueße,
Knut
-
Dr_Sputnik schrieb:
Hallo Leute,
ich komme einfach seit Stunden nicht weiter. Die Lösung ist sicher ganz simpel.
Ich habe zwei rekursive Funktionern, die sich auch noch gegenseitig aufrufen:Programmaufbau :
#pragma hdrstop
//---------------------------------------------------------------------------
#include <fstream.h>
#include <iostream.h>
//---------------------------------------------------------------------------
#pragma argsusedconst long Unendlich = 1399999999;
const unsigned short int n = 6; // Wert soll später aus Datei gelesen werden
unsigned short int vektor[n];void Funktion1(unsigned short int mue,unsigned short int nue,unsigned short int sigma) {
.
Funktion1(mue,nue,0)
.
Funktion2(mue,nue,0)
.
}
void Funktion2(unsigned short int mue,unsigned short int nue,unsigned short int sigma) {
.
Funktion2(mue,nue,0)
.
Funktion1(mue,nue,0)
.
}int main()
return 0;
}Der Fehler der nun kommt beim ausführen:
[C++ Error] MFP_CProg.cpp(86): E2268 Call to undefined function 'Funktion1'
wenn ich alle Aufrufe zu Funktion1 wegmache geht compilierenwenn ich die Reihenfolge vertausche, also Funktion2 an den Programmanfang kopiere dann kommt:
[C++ Error] MFP_CProg.cpp(86): E2268 Call to undefined function 'Funktion2'
wenn ich alle Aufrufe zu Funktion2 wegmache geht compilierenwer kann mir helfe ?
Grueße,
KnutDie Funktionen erst deklarieren, dann verwenden.
-
Was passiert wenn der Präprozessor sich durch den Code wühlt?
Er sieht die Funktion 1 in der Funktion 2 aufgerufen wird.
Der fragt sich jetzt, was für eine Funktion 2 hier wohl gemeint ist.
Ich kann nichts aufrufen was ich nicht kenne -> Fehler.Wenn du also schon alles in einer Datei haben willst, nutze folgende Kovention.
#pragma hdrstop //--------------------------------------------------------------------------- #include <fstream.h> #include <iostream.h> //--------------------------------------------------------------------------- #pragma argsused const long Unendlich = 1399999999; const unsigned short int n = 6; // Wert soll später aus Datei gelesen werden unsigned short int vektor[n]; // Deklaration void Funktion1(unsigned short int mue,unsigned short int nue,unsigned short int sigma) void Funktion2(unsigned short int mue,unsigned short int nue,unsigned short int sigma) // main() int main() { // Die Funktionen kann man hier aufrufen return 0; } // Defintion void Funktion1(unsigned short int mue,unsigned short int nue,unsigned short int sigma) { . Funktion1(mue,nue,0) . Funktion2(mue,nue,0) . } void Funktion2(unsigned short int mue,unsigned short int nue,unsigned short int sigma) { . Funktion2(mue,nue,0) . Funktion1(mue,nue,0) . }Deklaration -> es ist was da, merk ich mir
Aufruf -> Syntaxprüfung
Definition -> erstellen von Code
-
Vielen Dank für die Mühe !
Klappt super jetzt.