関数がとのmain
2 つの引数を取ることができることは承知しています。これは十分に文書化されています。ただし、関数は 3 番目の引数を取ることもできます。この議論が何であるかを知っている人はいますか?int argc
char* argv[]
main
4 に答える
この関数main
は、Mac OSでchar **apple
、「任意のOS提供情報を含む」という形式の4番目の引数を持つ場合もあります。詳細については、 http://en.wikipedia.org/wiki/Main_function#C_and_C.2B.2Bを参照してください。
これは環境変数で、通常の と同じ型argv
です。ただし、C++ 標準の一部ではありませんが、一部のシステムでは動作する可能性があります。
これは、環境変数がこのように渡されることが多い古い UNIX システムのものです。
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 のように見えるというよりは、下位互換性のためです)。
しかし、それはあなたが当てにできるものではありません。
を渡すことができますがchar *env[]
、別の環境変数のセットを渡すために、このように名前を付ける必要はありません。特定のプロセスが実行されている環境を変更できます。
この記事を参照してください、説明があります。