首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令行参数

命令行参数
EN

Stack Overflow用户
提问于 2013-02-28 20:32:03
回答 4查看 254关注 0票数 1

我知道main函数可以接受两个参数:int argcchar* argv[]。这是有据可查的。但是,main函数还可以接受第三个参数。有人知道这个论点是什么吗?

EN

回答 4

Stack Overflow用户

发布于 2013-02-28 20:33:23

它是环境变量,具有与普通argv相同的类型。虽然它不是C++标准的一部分,但仍然可以在某些系统上工作。

它来自较旧的UNIX系统,其中的环境变量通常是这样传递的。

票数 3
EN

Stack Overflow用户

发布于 2013-02-28 20:37:34

在Mac上,函数main可能还有第四个参数,形式为char **apple,“包含操作系统提供的任意信息”。详情请参见http://en.wikipedia.org/wiki/Main_function#C_and_C.2B.2B

票数 3
EN

Stack Overflow用户

发布于 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)。

然而,这不是你可以指望的东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15135641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档