1

関数がとのmain2 つの引数を取ることができることは承知しています。これは十分に文書化されています。ただし、関数は 3 番目の引数を取ることもできます。この議論が何であるかを知っている人はいますか?int argcchar* argv[]main

4

4 に答える 4

3

この関数mainは、Mac OSでchar **apple、「任意のOS提供情報を含む」という形式の4番目の引数を持つ場合もあります。詳細については、 http://en.wikipedia.org/wiki/Main_function#C_and_C.2B.2Bを参照してください。

于 2013-02-28T12:37:33.990 に答える
3

これは環境変数で、通常の と同じ型argvです。ただし、C++ 標準の一部ではありませんが、一部のシステムでは動作する可能性があります。

これは、環境変数がこのように渡されることが多い古い UNIX システムのものです。

于 2013-02-28T12:33:23.203 に答える
2

mainサポートする必要があり、すべてのプラットフォームに移植可能な形式は 2 つだけです。しかし、実装は、必要な追加のフォームを追加できます。int main( double )たとえば、合法です(ただし、それを使用する実装は聞いたことがありません)int main( char const* arg0... )。実際には、「古典的な」Unix がサポートし int main( int argc, char** argv, char** environ )ます。これは Posix では必要ありません。おそらく、これをサポートしていない Unix もあります。Unix の世界以外では、多くの初期の C 実装が Unix のように見えるように努めたため、これもサポートされている可能性があります (今日では、Unix のように見えるというよりは、下位互換性のためです)。

しかし、それはあなたが当てにできるものではありません。

于 2013-02-28T13:02:28.873 に答える
0

を渡すことができますがchar *env[]、別の環境変数のセットを渡すために、このように名前を付ける必要はありません。特定のプロセスが実行されている環境を変更できます。

この記事を参照してください、説明があります。

于 2013-02-28T12:35:15.213 に答える