Funktion aufrufen
-
Hi,
ist vielleicht ne blöde Frage, aber kann ich bei einem Konsolenprogramm eine Funktion aus einer anderen Funktion heraus aufrufen? und geht das genauso wie immer?vielen dank
MIKE
-
Natürlich!
-
int func1(void); int main() { //bla func1(); //bla return 0; } int func1(void) { //bla }
@Holy: du alter besser wisser. wollt ja nur das prinzip zeigen
:p[ Dieser Beitrag wurde am 04.10.2002 um 22:57 Uhr von Griffin editiert. ]
-
@Griffin
Da würde aber noch nen CompilerFehler kommen, da du bei deiner int func1() nix zurückgibst, und zumindest musst du deinen Parameter auf void setzen!also:
int func1(void); int main(void) { //bla func1(); //bla return 0; } int func1(void) { //bla return 1; }
[ Dieser Beitrag wurde am 04.10.2002 um 21:57 Uhr von HolyMetaler editiert. ]
-
Aber muss die Funktion "funcl()" nicht vor main() sein, da sie von main() aufgerufen wird.Und als ich das probiert habe, sagte er dass er die Funktion nicht kenne.Dann hab ich sie über main() gesetzt und dann kannte er sie auch.
-
es reicht der funktionsprototyp zum bekanntmachen.. die definition kann dann irgendwo stehen ...
-
Das ist ja gut zu wissen.Aber was meinst du mit "Funktionsprototyp"?
-
schau dir das beispiel oben nochmal an..
da wird die funtkion vor der main funktion schon bekannt gemachtein funktionsprototyp ist die kopfzeile der funktion mit parameterliste (datentypen reichen) ohne definition..
-
Wenn man nun in eine andere Funktion gewechselt hat und dann wieder in die nächste Zeile vom main() will (wenn main() von Anfang wieder laufen würde wäre das ja ein ewiger Teufelskreis).Also was kann man da machen?
-
Original erstellt von sic:
Wenn man nun in eine andere Funktion gewechselt hat und dann wieder in die nächste Zeile vom main() will (wenn main() von Anfang wieder laufen würde wäre das ja ein ewiger Teufelskreis).Also was kann man da machen???? das geht automatisch... funktion kehrt immer dahin zurück, von wo sie aufgerufen wurde... außer du änderst was an den registern... aber das darf dich jetzt nicht stören...
teste mal folgendes...
#include <stdio.h> int funk1(void); int funk2(void); int funk3(void); void main(void) { printf("%i\r\n", funk1()); printf("%i\r\n", funk2()); printf("%i\r\n", funk3()); } int funk1(void) { return 1; } int funk2(void) { return 2; } int funk3(void) { return 3; }
[ Dieser Beitrag wurde am 07.10.2002 um 00:40 Uhr von int_esskar editiert. ]
-
Achso.Danke.Wusste ich gar nicht.Hab es gleich versucht aus der Funktion mit main(); wieder rauszukommen.Dann ist mir eingefallen, dass ja dann dauernd das gleiche passiert und hab mir gedacht jetzt frag ich was man da machen kann.