【问题标题】:How many parameters can be passed to main() [duplicate]可以将多少个参数传递给 main() [重复]
【发布时间】:2014-04-23 12:50:41
【问题描述】:

main 可以有的参数数量有限制吗?

这是一个完美运行的示例代码……我不知道它是否被允许。

int main( char* argv[], int argc, int arv, bool test)
{
    cout<<"Hello"<<endl;
}

输出: 你好

我正在使用

  • gcc-4.1.2_20070115-0.32.53

  • gcc-c++-4.1.2_20070115-0.32.53

  • libgcc-4.1.2_20070115-0.32.53

  • gcc-objc-4.1.2_20070115-0.32.53

【问题讨论】:

  • 我几乎不相信有一个限制。
  • 那是gcc 的一个非常旧的版本,4.8.2 会为此代码提供警告。
  • 升级你的 gcc.mine 4.4.7 给出警告
  • 我尝试使用不同版本的 gcc libgcc46-4.6.1_20110701-0.13.9 它说: test.cpp:4: error: 'int main(int, char**, char**, char**)' 只接受零个或两个参数.. 似乎最新版本也在检查这一点。

标签: c++ gcc


【解决方案1】:

C++ 标准does not explicitly forbid these signatures,但它也不需要它们工作。它只是说以下两个签名必须适用于任何编译器:

  • int main()
  • int main(int, char**)

而且返回类型必须是int

【讨论】:

  • 那是错误的。请查看独立实现。
  • @Deduplicator 直接来自标准怎么会出错呢?独立实施有自己的小众市场,但人们(和标准,除非另有说明)谈论托管实施。我的回答根本不适用于独立实现,它们根本没有定义的启动顺序。
  • 只是说它只适用于托管实现/不适用于独立实现,没关系。是的,人们大多询问托管,但他们仍然对裸机进行编程。
猜你喜欢
  • 2017-06-14
  • 1970-01-01
  • 2022-07-26
  • 2016-10-25
  • 1970-01-01
  • 2012-03-03
  • 2019-02-21
  • 2012-10-12
  • 2012-12-12
相关资源
最近更新 更多