Was war zuerst das Huhn oder das Ei ?

Johannes7146

Goldschnabel
hallo zuammen..

hab hier ein problem was in etwa der überschrift entspricht!
wenn ich in meinem Programm 2 funktionen habe (A und B)

Funktion A greift auf funktion B zurück und B umgekehrt auf Funktion A.

Ich programmiere in C ....
wenn ich zuerst funktion A implementiere finder er B nicht um umgekehrt genauso..
Ich hoffe ihr versteht was ich meine.
gibts dafür ne lösung?
 
Hallo,

also ich kann dir leider nicht sagen wie es bei c++ ist, aber zum Beispiel in Ada gibt es die Möglichkeit den Kopf der Funktion oder Prozedur schon vor zu definieren und damit funktioniert das dann ohne Probleme.
Ich denke mal, dass es in c++ auch sowas in der Richtung geben wird.

MFG

zEriX
 
Hallo


Arbeite mit Prototypen!
Code:
#include <stdio.h>
#include <stdlib.h>

/* Funktionsprototypen /*
void A(void);
void b(void);

/* Eigentliche Funktionsdeklaration */

void A(void)
{
   return;
}

void B(void)
{
   return;
}


Hoffe, dass hilft dir weiter.

Gruss

FG
 
danke für die schnelle info!

ich werds mal versuchen
bin noch etwas grün hinter den ohren bezüglich programmieren

deswegen die doofe frage:
wieso gibts es keine Fehlermeldung wenn eine funktion 2 mal erstellt wird?
 
Hallo

Sollte er eigentlich machen. Wenn du die Funktion korrekt deklariert hast und die Definitionen stimmen, müsste er eine Fehlermeldung bringen

"main.c ERROR: func redefinition"

Ist aber ein bisschen Compilerabhängig.

Zudem kann es auch sein, dass die beiden Funktionen in zwei verschiedenen Files sind. Mit der richtigen Kombination der Headers kann das ohne Fehler gehen.


Gruss


FG
 
Die Funktionsprototypen sind aber eher als Bauplan für die kommenden Methoden zu verstehen. Es gibt die sog. Methodensignatur wieder.

Eine Methode kann auch mit dem selben Namen exisitieren...wenn du diese Funktion überlädst....d.h. selber Name, aber unterschiedliche Anzahl und/oder Parametertypen.
 
Hallo,
...
Eine Methode kann auch mit dem selben Namen exisitieren...wenn du diese Funktion überlädst....d.h. selber Name, aber unterschiedliche Anzahl und/oder Parametertypen.

das stimmt aber nur bedingt. Von einem C Kontext aus gesehen gibt es
1.) keine Methoden, sondern nur Funktionen (der Begriff Methode hat nur im objektorientierten Umfeld einen Sinn)
2.) kein Überladen von Funktionen

Gruß,
RedWing
 
Hallo

Ich stimme RedWing zu.

Methoden und Überladen gibt es aus dem Kontext heraus eigentlich nur in C++, aber nicht in C.

Gruss

FG
 
Zurück