main()可以采用任何类型的参数吗?

时间:2014-12-31 11:21:28

标签: c++ visual-studio-2012 language-lawyer

为什么这段代码在Visual Studio Express 2012中运行?

struct S{int k;};
int main(S s)
{
s.k = 100;
// other lines
}

我同时阅读了标准文档和MSDN,但没有提到禁止main的这种重载,尽管this MSDN页面只是说不能超载。这是否意味着如果实施喜欢它是允许的?或者它只是编译器中的一个错误?


从我从最初的评论收集到这个问题,以及问题中的讨论被标记为重复,只要支持规范的实现,实现就允许适当的重载。但是,有什么用呢,它允许我提到的那种过载?环境不知道填充它的结构并在启动期间将其作为参数传递。难道不是一个错误吗?

可能有一个模糊(从我的POV)的情况,程序可能由自定义加载程序加载,设置参数等。这是允许的原因吗?

0 个答案:

没有答案