2010-11-25 2 views
2

可能性の重複:
What are the valid signatures for C's main() function?'main'関数の有効なプロトタイプは何ですか?

'メイン' 関数の異なる有効なプロトタイプは何ですか?

一部の非標準プロトタイプはいくつかのベンダーによってのみサポートされていますか?

+0

[Cのmain()関数の有効な署名は何ですか? ](http://stackoverflow.com/questions/2108192/what-are-the-valid-signatures-for-cs-main-function)。 –

+0

一部のコンパイラもvoid main()をサポートしています – Shweta

答えて

2

のgccで許可された完全なプロトタイプは次のとおりです。

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

しかしenvpはほとんど使用されません。 argcおよびargvを省略することも許容されるとみなされます。すべてのOSが独自の付加的な非標準のエントリを有し、

int main(void); 

またはそれ以外

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

+1

'envp'はCでは指定されていません。CにはAlexによってリストされた2つのものが含まれていますが、 –

+0

@Matthew:興味深いことに、 'gcc -pedantic'は' envp'について不平を言っていません。 –

+1

もちろんです。 GCCが追加のパラメータを文書化している限り、標準実装は追加のプロトタイプを定義しています。標準に準拠しています。 –

3

C標準(§ 5.1.2.2.1)は、二つのエントリポイントのプロトタイプを定義しますポイント。 WinMainなど

関連する問題