c++ problem

Registriert
27. Juli 2003
Reaktionspunkte
2
Ort
BW
hallo zusammen,

hat jemand von euch ahnung von c++ und könnt mir kurz bei einer aufgabe helfen?

ist nichts aufregendes.
 
also, ich hab einen code-schnipsel mit einem fehler, den ich finden soll

leider hab ich von c aber noch nicht wirklich viel ahnung und bräuchte jemanden der mit hiermit hilft:

#include<stdio.h>

void main(void)
{
motd();
return 0;
}

void motd()
{
printf("text");
return;
}

wäre gut, wenn du mir auch sagen kannst, was warum falsch ist :daumen:
 
ich würd halt sagen, lass es einfach mal durch einen c-compiler laufen, dann weisst du wo der fehler liegt :D

aber ich helf dir:



#include<stdio.h>


void motd() //diese funktion an den anfang, damit main() das auch weiss...
{
printf("text");
//return; <- kein return, da void (was eh falsch wäre, wenn, dann return 0.
}


void main() //<- es muss hier einfach void main() heissen
{
motd();
//return 0; <- selbes wie oben, kein return 0
}

//edit: so jetzt isse kompilierbar und läuft :D
 
kein problem :)

bei weiteren fragen steh ich natürlich gern zur verfügung....(solange es das niveau des dritten semesters informatik nicht übersteigt ^^)
 
ich würd halt sagen, lass es einfach mal durch einen c-compiler laufen, dann weisst du wo der fehler liegt :D

aber ich helf dir:



#include<stdio.h>


void motd() //diese funktion an den anfang, damit main() das auch weiss...
{
printf("text");
//return; <- kein return, da void (was eh falsch wäre, wenn, dann return 0.
}


void main() //<- es muss hier einfach void main() heissen
{
motd();
//return 0; <- selbes wie oben, kein return 0
}

//edit: so jetzt isse kompilierbar und läuft :D

???

"return 0;" in main() gibt Compiler-Fehler: void-Funktion kann keinen Integer zurückgeben.

"return"-Anweisung in motd() ist zwar unnötig, aber nicht falsch.

Wo tbird recht hat: motd muß an den Anfang, oder es muß vor main() ein PROTOTYP deklariert werden:

#include<stdio.h>

void motd(void); <- sonst weiß main() nicht von dieser Funktion

void main(void)
{
motd();
//return 0; <- falsch;
//return; <- würde gehen, ist aber am Ende der Funktion unnötig
}

void motd()
{
printf("text");
return;
}
 
Eigentlich ist der Rückgabewert der main()-Funktion ein int, also

int main (void)

void funktioniert so lange, wie der Rückgabewert im aufrufenden Programm keine Rolle spielt.

http://www.volkard.de/vcppkold/klasse_nimmspiel__void_main_oder_int_main.html

Da hast Du natürlich recht. Aber da der Thread-Ersteller offenbar nicht DIE Ahnung hat, wollte ich es nicht noch komplizierter machen.

@tbird

tbird schrieb:
void motd() //diese funktion an den anfang, damit main() das auch weiss...
{
printf("text");
//return; <- kein return, da void (was eh falsch wäre, wenn, dann return 0.
}

Ich hatte mich darauf bezogen, vor allem auf "... wenn, dann return 0", was in der void-Funktion definitiv falsch wäre, wohingegen "return;" zwar unnötig, aber korrekt wäre.
 
Zurück