malloc Allozierung geht verloren
-
Okay Satzzeichen und eventuelle Missinterpretationen

Mit "in dem Fall" ist gemeint, wenn nicht ein anderer Rückgabewert des Programms von der Umgebung gefordert ist.
Hoffe nun sind alle Klarheiten beseitigt

-
volkard schrieb:
Ich kann nicht so gut Englisch. aber sagt "but otherwise its type is implementation-defined" nicht genau das Gegenteil, also daß sehr wohl anderes gemacht werden darf, aber dann die Sache halt implementation-defined wird?
Bin auch kein Englisch-Master, aber meiner Auffassung nach steht da, dass die main-Funktion int zurückgeben muss, aber darüber hinaus ihr Typ von einer konkreten Implementation vorgegeben werden kann. Das ist die Lesart für "shall", die bei technischen Spezifikationen wie z. B. RFCs gilt.
[was hier stand war Unsinn und steht deshalb jetzt nicht mehr hier]
Also kein absolutes void-Verbot mehr und kein Kreuzzug und keine Heilige Inquisition, wenn das jemand geschrieben hat?
Statt dessen Folterung und langsamer Tod.
-
"but otherwise" == "aber ansonsten".
Das heißt, main muss int zurückgeben, aber welche Parameter sie entgegennehmen kann, ist implementationsabhängig - es müssen halt nur mindestens die beiden angegebenen unterstützt werden.
Beispielsweise findet man häufig die dritte Form
int main(int argc, char *argv[], char *envp[]);in der ein Array von Umgebungsvariablen als envp mitgegeben wird.
-
volkard schrieb:
ISO/IEC 14882:2003 3.6.1 (2) schrieb:
An implementation shall not predefine the main function. This function shall not be overloaded. It shall have a return type of type int, but otherwise its type is implementation-defined.
Ich kann nicht so gut Englisch. aber sagt "but otherwise its type is implementation-defined" nicht genau das Gegenteil, also daß sehr wohl anderes gemacht werden darf, aber dann die Sache halt implementation-defined wird?
Ich verstehe den Satz so, dass sich "its type" auf den Typ der Funktion bezieht, also bezeichnet "otherwise its type" den Funktionstyp ohne Rückgabetyp, was den Parametern entspricht.
-
Ja, klingt logisch.
Aber die hätten ruhig netter sein können und statt zu schreiben
"Der Rückgabetyp muß int sein, aber ansonsten ist der Typ durch die Implementierung definiert."
lieber
"Der Rückgabetyp muß int sein und die Parameter sind durch die Implementierung definiert."
So lerne ich nie C++.
-
Die Stelle ist wirklich sehr ungeschickt forumuliert. Da hätten 2 getrennte Sätze einiges an Konfusion vermeiden können.
-
Ich fand die Formulierung eigentlich ziemlich klar und eindeutig - der Typ einer Funktion ist halt ihre Signatur, und der Standard schränkt diesen für main so ein, dass int als Rückgabetyp verlangt wird.
Um ehrlich zu sein, ich bin über eure Verwirrung ziemlich verwirrt.
-
seldon schrieb:
Ich fand die Formulierung eigentlich ziemlich klar und eindeutig - der Typ einer Funktion ist halt ihre Signatur, und der Standard schränkt diesen für main so ein, dass int als Rückgabetyp verlangt wird.
Um ehrlich zu sein, ich bin über eure Verwirrung ziemlich verwirrt.
Es ist imo nicht ganz klar, worauf sich das "its" dort bezieht. Wenn man das das erste mal liest, dann kann man das schon so verstehen, dass es sich auf "return type" bezieht.