为什么这段代码在Visual Studio Express 2012中运行?
struct S{int k;};
int main(S s)
{
s.k = 100;
// other lines
}
我同时阅读了标准文档和MSDN,但没有提到禁止main
的这种重载,尽管this MSDN页面只是说不能超载。这是否意味着如果实施喜欢它是允许的?或者它只是编译器中的一个错误?
从我从最初的评论收集到这个问题,以及问题中的讨论被标记为重复,只要支持规范的实现,实现就允许适当的重载。但是,有什么用呢,它允许我提到的那种过载?环境不知道填充它的结构并在启动期间将其作为参数传递。难道不是一个错误吗?
可能有一个模糊(从我的POV)的情况,程序可能由自定义加载程序加载,设置参数等。这是允许的原因吗?