Funktionsproblem
-
"Es gibt eben nur zwei verschiedene gleichgültige Definitionen der hauptfunktion main. Eine ganz ohne und eine mit den zwei Parametern. "
sry das raff ich irgendwie net
-
Hallo
Es gibt diese zwei gültigen Definitionen für die main Funktion
- int main(int argc, char* argv[])
- int main()Genau eine davon must du auswählen.
bis bald
akari
-
ja nur was ist der unterschie zwischne diesen zwei definitionen???
int main() bedeutet doch eiegntlich das die funktion keine agumente hat oder ..also könnte man auch eiegtnlcih schrieben int main(void)???
-
Hallo
ja nur was ist der unterschie zwischne diesen zwei definitionen???
Die Parameter! je nachdem ob du dem Programm übergebene Kommandoparamter auswerten willst oder nicht.
int main() bedeutet doch eiegntlich das die funktion keine agumente hat oder
Korrekt
also könnte man auch eiegtnlcih schrieben int main(void)???
Nein das kann (darf) man nicht, denn ...(void) ist laut C++ Standard nicht erlaubt. Das void ist wegzulassen.
bis bald
akari
-
was sind eiegntlich argumente????
-
noob123 schrieb:
was sind eiegntlich argumente????
void exit (int iStatus); /\ /\ /\ /\ Return-Wert-Typ Funktionsname Typ Argument
-
akari schrieb:
also könnte man auch eiegtnlcih schrieben int main(void)???
Nein das kann (darf) man nicht, denn ...(void) ist laut C++ Standard nicht erlaubt. Das void ist wegzulassen.
wo steht das? in 3.6.1 [basic.start.main] nicht. ansonsten ist 8.3.5/2 2.satz relevant, der besagt, dass die parameterliste (void) äquivalent zu einer leeren parameterliste ist (das heisst, der resultierende funktionstyp ist der selbe, und darauf kommt es an). (void) mag ein anachronismus sein, aber falsch ist es sicherlich nicht.
-
akari schrieb:
also könnte man auch eiegtnlcih schrieben int main(void)???
Nein das kann (darf) man nicht, denn ...(void) ist laut C++ Standard nicht erlaubt. Das void ist wegzulassen.
Chapter und Verse, please. Das letzte mal als ich in den C++ Standard geschaut habe waren (void) und () noch äquivalent (im Gegensatz zu C) und ersteres führt einfach nur schneller zu einem Carpal-Tunnel-Syndrom.
-
noob123 schrieb:
was sind eiegntlich argumente????
Das was an eine Funktion übergeben wird. Das ist das was in den Klammern nach dem funktionsnamen steht. Aber am besten liest du mal ein gescheites Buch, kann ja net schaden

zB
int main(int argc, char *argv[]);Sinds zwei Argumente/Parameter. Das erste ist vom Typ "int" und hat den Namen argc (d.h. wenn du irgendwo argc im folgenden Code schreibst, dann wird der Wert den diese Variable hat an der Stelle eingefügt). Der zweite is vom Typ "char *[]", d.h. heißt ein Pointer auf eine Liste von Pointern mit Pointer auf char-Arrays (ich hoffe das war jetzt richtig) ROFL
Aber ich glaub des is a bisl zu verwirrend für den Anfang.edit: Ich will auch mal meinen, dass () und (void) das gleiche ist. Bei C agbs ja nur (void) und C++ is ja schließlich abwärtskompatibel.
-
CodeFinder schrieb:
noob123 schrieb:
was sind eiegntlich argumente????
void exit (int iStatus); /\ /\ /\ /\ Return-Wert-Typ Funktionsname Typ ArgumentDas was du hier mit Argument benannt hast, bezeichnet man in der Regel als Parameter. Argument ist das was man beim Aufruf an die Funktion übergibt. Andere sprechen auch von formalen Parametern = die Dinger in der Deklaration und aktuelle Parameter = die Werte die man beim Aufruf übergibt.
-
HumeSikkins schrieb:
Das was du hier mit Argument benannt hast, bezeichnet man in der Regel als Parameter. Argument ist das was man beim Aufruf an die Funktion übergibt. Andere sprechen auch von formalen Parametern = die Dinger in der Deklaration und aktuelle Parameter = die Werte die man beim Aufruf übergibt.
Jop, hast Recht...
exit(0);Hierbei ist 0, das der Funktion 'exit' übergebene Argument. In einem Prototyp (wie ich zuvor gepostet hab) wäre das dann der Parameter. Sorry wg. der Verwirrung
