我知道main函数可以接受两个参数:int argc和char* argv[]。这是有据可查的。但是,main函数还可以接受第三个参数。有人知道这个论点是什么吗?
发布于 2013-02-28 20:33:23
它是环境变量,具有与普通argv相同的类型。虽然它不是C++标准的一部分,但仍然可以在某些系统上工作。
它来自较旧的UNIX系统,其中的环境变量通常是这样传递的。
发布于 2013-02-28 20:37:34
在Mac上,函数main可能还有第四个参数,形式为char **apple,“包含操作系统提供的任意信息”。详情请参见http://en.wikipedia.org/wiki/Main_function#C_and_C.2B.2B。
发布于 2013-02-28 21:02:29
只有两种形式的main需要支持,并且可以移植到所有平台。但是一个实现可以添加它想要的任何其他形式:例如,int main( double )将是合法的(尽管我从来没有听说过使用它的实现),int main( char const* arg0... )也是如此。在实践中,“经典”Unix将支持int main( int argc, char** argv, char** environ );这不是Posix所必需的,并且可能有一些Unix不支持它。在Unix的世界之外,许多早期的C实现试图看起来像Unix,因此也可能支持这一点(今天更多的是出于向后兼容的原因,而不是看起来像Unix)。
然而,这不是你可以指望的东西。
https://stackoverflow.com/questions/15135641
复制相似问题