URL: https://www.overclockers.at/coding-stuff/quotvoidquot_programmiersprache_c_183003/page_1 - zur Vollversion wechseln!
Hallo zusammen!!
So steht das in meinem Buch:
Was also ist die Ursache für die Fehlermeldung?
Was Sie noch nicht wissen können,leider akzeptiert der Compiler die Anweisung double sqrt2(); nicht als Funktionsprototypen. Die Ursache ist das leere Klammerpaar. Der Compiler nimmt an, Sie hätten vergessen, in den Klammern die Funktionsparameter aufzufüühren und beschwert sich. Tun Sie dem Compiler den Gefallen und weisen explizit darauf hin, dass es sich bei sqrt2 um eine parameterlose Funktion handelt.
welche fehlermeldung?
schon mal ohne klammer versucht
"Tun Sie dem Compiler den Gefallen und weisen explizit darauf hin, dass es sich bei sqrt2 um eine parameterlose Funktion handelt."
Was soll bitte die Frage sein?
Was "void" heißt?
Was willst eigentlich mit einer Funktion der nicht mal irgendein Parameter übergeben wird? Macht das Sinn?
An deiner Stelle würd ich den Prototypen void sqrt2(double zahl1); verwenden, wenn du ein Programm für sqrt(zahl) schreiben willst...
Kanns sein, dass du extern gegen ein file mit der funktion verlinkt und du das ganze erst mit extern ... anschreiben musst?
void ist nur ein quasi datentyp, damit du einen gegensatz zu int, char ... hast, das bedeutet nur, dass du keinen datentypen hast. Das brauchst du aber auch nur gerade dann, wenn du eine funktion ohne rückgabewert verwendest oder diesen hässlichen void* verwendest.
Mein guter rat, lass es so stehen, wenn die funktionsdefinition wirklich
double sqrt2();
ist und du wirklich keien parameter übergeben willst ist das sowohl c89, als auch c99 konform. Wenn dein compiler trotzdem stänkert würd ich mir einen neuen suchen.
in diesem fall zwar nicht aber allgemein:Zitat von ArmaxWas willst eigentlich mit einer Funktion der nicht mal irgendein Parameter übergeben wird? Macht das Sinn?
Zitat von Lukasin diesem fall zwar nicht aber allgemein:
schon mal was von settern gehoert? setFoo() { foo = bar;}
Zitat von COLOSSUSAch, die braucht man doch hauptsaechlich in ekligen Kacksprachen wie Java!
he, das setter und getter konzept find i ned eklig :P
Zitat von Lukasin diesem fall zwar nicht aber allgemein:
schon mal was von settern gehoert?
Zitat von LukassetFoo() { foo = bar;}
Code:void setFoo(int newFoo) { foo = newFoo; } int getFoo() { return foo; }
Wenn du noch nie gesehen hast, wie bspw. Ruby das macht, kann ich das auch irgendwo nachvollziehen
Zitat von thatKlar, das sind irgendwelche Hunde.
Normalerweise geht das so:Code:void setFoo(int newFoo) { foo = newFoo; } int getFoo() { return foo; }
So, genug offtopic.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025