Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

27.08.2004, 22:56

Frage zu Konsolenappl.

Hi,
ich bin grad dabei, mal wieder eine kleine Dos-Anwendung zu proggen. Nun hab ich folgendes Problem: Ich habe 2 Funktionen, Menu und prove. Die Menu funktion ruft die prove funktion auf (um die Eingabe zu prüfen). Nun ruft aber auch die Prove Funktion die Menu Funktion auf (falls die Eingabe falsch war, schreibt er die Fehlermeldung und geht zurück zum Menü).
Nur der Debugger sagt mir, dass er entweder die Funktion Menu oder prove nicht kennt (je nachdem was oben steht).
Wie mache ich das?? jemand ne Idee?

Wäre echt nett,
Mfg Serubabbel (Ps: Dos rulez ;) )
"Es ist Zeit, dass die Menschheit ins Sonnensystem vordringt"
George W. Bush

2

27.08.2004, 23:39

Hi,

du kannst Funktionen deklarieren bevor du sie definierst.

Mach folgendens.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include ....

....

typ menu(parameterliste); // Funktion deklarieren

typ prove(parameterliste); // Funktion deklarieren


typ menu(parameterliste) // Funktion definieren

{
// Code

}

typ prove(parameterliste) // Funktion definieren

{
// Code

}

int main()
{
// Code

}


Durch das deklarieren weiss dein Compiler das die entsprechende Funktion existiert und wird nicht mehr meckern!

Das sollte dein Problem lösen!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

28.08.2004, 10:10

Hmm das ist nen overkill, denn du musst die Funktion normally nur deklarieren, wenn die Definition nach der main-anweisung steht....

unsigned int

Alter Hase

Beiträge: 512

Wohnort: Bonn

Beruf: Schüler; C#-Programmierer in einer kleinen Firma

  • Private Nachricht senden

4

28.08.2004, 12:09

Also afaik braucht man immer Funktiondeklarationen / -prototypen, wenn eine Funktion von der Definition aufgerufen wird. Das hat doch nix mit main() zu tun!?
"Tu es. Oder tu es nicht. Es gibt kein Versuchen."
StarWars

www.tron2d.de.vu

5

28.08.2004, 12:37

Ja, dankeschön! Es geht! :roll:

Mfg Serubabbel
"Es ist Zeit, dass die Menschheit ins Sonnensystem vordringt"
George W. Bush

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

28.08.2004, 13:41

Zitat

Also afaik braucht man immer Funktiondeklarationen / -prototypen, wenn eine Funktion von der Definition aufgerufen wird. Das hat doch nix mit main() zu tun!?


Es geht hier aber um ein Konsolenprogramm mit keinerlei headern. Man kann natrülich alles gleich komplett abstrakt erklären.....

7

28.08.2004, 16:37

Das hat doch nix mit vor oder hinter main zu tun.

Du kannst doch keine Funktion aufrufen, wenn sie noch nicht deklariert oder definiert ist.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
int x()
[ 
   return y();
}

int y()
{
  // was auch immer

}

wird nicht gehen. Egal ob die Funktionen vor oder hinter main stehen. Allein an der Aussage solltest du schon erkennen, dass es nur so gehen kann.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

29.08.2004, 13:42

hmm sry stimmt er hat ja 2 funktionen, ich bin von dem speziellen fall ausgegangen das er nur eine funktion hat, mein fehler.....

Werbeanzeige