2010-11-25 4 views
2

Mögliche Duplizieren:
What are the valid signatures for C's main() function?Was sind die verschiedenen gültigen Prototypen der Hauptfunktion?

Was sind die verschiedenen gültigen Prototypen von 'main' Funktion?

Werden einige Nicht-Standard-Prototypen auch nur von wenigen Anbietern unterstützt?

+0

Identisch mit [Was sind die gültigen Signaturen für die main() - Funktion von C? ] (http://stackoverflow.com/questions/2108192/what-are-the-valid-signatures-for-cs-main-function). –

+0

einige Compiler unterstützen auch void main() – Shweta

Antwort

2

Der vollständige Prototyp von gcc erlaubt ist:

int main(int argc, char * argv[], char *envp[]) 

aber envp selten verwendet wird. Das Auslassen von argc und argv wird ebenfalls als akzeptabel angesehen.

+1

'envp' ist nicht in C angegeben. C enthält die beiden von Alex aufgeführten, aber es erlaubt" einige andere implementation-defined ", einschließlich dieser. –

+0

@Matthew: Interessanterweise klagen 'gcc -pedantic' nicht über' envp'. –

+1

Natürlich nicht. Der Standard _implementiert zusätzliche Prototypen, so lange der GCC die zusätzlichen Parameter dokumentiert, ist er standardkonform. –

3

Der C-Standard (§ 5.1.2.2.1) zwei Eintrittspunkt Prototypen:

int main(void); 

oder

int main(int argc, char **argv); 

Andere als die, jeder seinen eigenen OS zusätzlichen Nicht-Standard-Eintrag sind Punkte. WinMain usw.

Verwandte Themen