主函数(main())可以传递多少个参数?
主函数(main())可以传递多少个参数?
主函数的参数数量有限制吗?以下是一段完美运行的示例代码……但我不确定是否被允许。\n
int main(char* argv[], int argc, int arv, bool test) { cout << "Hello" << endl; }
\n输出:\nHello\n我使用的是\n
- \n
- 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
\n
\n
\n
\n
C++标准没有明确禁止传递其他参数给main()函数,但也没有要求这些参数能够正常工作。标准只规定了以下两种main()函数的签名必须在任何编译器上能够正常工作:
- int main()
- int main(int, char**)
并且返回类型必须是int。
然而,以上说法是错误的。请看看无操作系统的实现。
既然直接来自标准,怎么可能是错误的呢?无操作系统的实现有其自己的特殊情况,但人们(以及标准,除非另有说明)通常讨论的是有操作系统的实现。我的回答只是不适用于无操作系统的实现,因为它们根本没有定义的启动序列。
只需要说明它仅适用于有操作系统的实现/不适用于无操作系统的实现,就可以了。是的,人们主要讨论有操作系统的实现,但他们也会在裸金属编程中使用。
解决方法:
- 对于有操作系统的实现,可以使用标准规定的两种main()函数签名,即int main()和int main(int, char**)。
- 对于无操作系统的实现,由于没有定义的启动序列,可以根据具体情况自定义main()函数的参数和返回类型。
C++标准规定了有操作系统的实现中main()函数的两种签名,但对于无操作系统的实现没有明确规定。因此,对于有操作系统的实现,应该遵循标准规定的main()函数签名;而对于无操作系统的实现,则可以根据具体情况自定义main()函数的参数和返回类型。