繁体   English   中英

main()函数是否已使用?

[英]Is the main() function odr-used?

main()函数是否已使用 例如,在这样的简单程序中:

int main()
{
}

不它不是。 不在您的简单程序中。

[basic.def.odr]

3如果函数的名称是唯一的查找结果或一组重载函数的选定成员([basic.lookup],[over.match],[over.over]),则该函数的名称将显示为可能评估的表达式。 ]),除非它是纯虚函数且其名称未明确限定或表达式形成指向成员([expr.unary.op])的指针。

main不会出现在可能评估的表达式中,因此不会被使用。 此外,我们必须考虑以下几点:

[basic.start.main]

3函数main不得在程序内使用。

这是否适用于简单地调用 main或进行任何使用,尚有待商,,但这无疑将您的选择限制为在任何程序中使用main

这是值得分析ODR使用时,它是ODR-使用实体程序牢记(或不使用它们)。 外部力量(例如使用main作为切入点的实现)不受该辩论的约束。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM