首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C ++中main的签名参数是否具有unsigned和const限定符?[重复]

C ++中main的签名参数是否具有unsigned和const限定符?[重复]
EN

Stack Overflow用户
提问于 2018-09-14 03:27:01
回答 2查看 0关注 0票数 0

这个问题在这里已有答案:

  • main()应该在C和C ++中返回什么? 18个答案

该标准明确规定main有两个有效(即保证有效)的签名; 即:

int main();
int main(int, char*[]);

我的问题很简单,以下是合法的吗?

int main(const unsigned int, const char* const* argv);

我的测试中说“是”,但我不能确定的答案,因为我不能超载main改变intunsigned int以及非顶层const的argv -ness?如果我是,那么这显然是被禁止的。

那么,这些修改是否可以在符合标准的编译器上运行?

EN

回答 2

Stack Overflow用户

发布于 2018-09-14 12:17:56

您必须使用符合标准的签名之一才能符合标准。

我完全理解你为什么要这样做。最好的方法是编写自己的函数myMain()或任何你想要的签名,并从main()调用它,包括所需的强制转换。

票数 0
EN

Stack Overflow用户

发布于 2018-09-14 13:07:10

根据标准,您可能违法,但大多数运行时并不关心。他们只是推送一个整数argc和一个指针argv,调用你的main,并希望你正确地解析它们。因此,在您的权限范围内,“保证工作”是值得商榷的,因为加载器实际上并不关心您所声明的参数。

如果它构建,main将被调用。你如何解析参数取决于你。我应该澄清这是高度平台特定的,几乎整个问题。

那说,为什么?

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

https://stackoverflow.com/questions/-100001400

复制
相关文章

相似问题

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