Hallo Ich war bisher der Annahme, dass die Position von Funktionen im Programm irrelevant sei, da der Compiler ohnehin bei main beginnt und von dort aus auf die benötigten Funktionen zugreift. Folgender Code bringt allerdings die Fehlermeldung "warning: implicit declaration of function 'Funktion1' (void) main (void) { ... Funktion1(); ... } void Funktion1 (void) { ...; } dreht man den Spieß um, dann wird der Code ohne Fehlermeldung compiliert: void Funktion1 (void) { ...; } (void) main (void) { ... Funktion1(); ... } Ist das normal so? mfg Merk L
Merk L schrieb:
> Ist das normal so?
Ja. Ein schneller Blick auf google mit der Fehlermeldung bringt dir
sicher auch die Erklaerung dafuer. Oder du guckst in dein C-Buch...
Merk L schrieb:
> Ist das normal so?
Ja, denn an der Stelle wo die Funktion aufgerufen wird, muss der
Compiler bereits den Prototyp der Funktion kennen. Die erste Variante
sieht korrekt dann so aus:
1 | void Funktion1 (void); |
2 | |
3 | (void) main (void) |
4 | {
|
5 | ...
|
6 | Funktion1(); |
7 | ...
|
8 | }
|
9 | |
10 | void Funktion1 (void) |
11 | {
|
12 | ...;
|
13 | }
|
Merk L schrieb: > Hallo > > Ich war bisher der Annahme, dass die Position von Funktionen im Programm > irrelevant sei, da der Compiler ohnehin bei main beginnt und von dort > aus auf die benötigten Funktionen zugreift. Und was, wenn die Funktion in einer ganz anderen Datei ist? De Ausführung des Programms beginnt immer bei main() Aber wenn der Compiler dein Pogramm übersetzt, geht er den Text von oben nach unten durch. Und zwar nur einmal.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.