gpt4 book ai didi

c++ - 函数调用顺序。它是编译器还是取决于情况?

转载 作者:太空狗 更新时间:2023-10-29 23:23:32 27 4
gpt4 key购买 nike

引起我注意的是 following fact : 函数评估的顺序,例如求和,在标准中未指定,因此可以按任何顺序执行。

这就提出了一个问题:它是依赖于编译器,依赖于优化,还是潜在地依赖于执行(我对此表示怀疑,它可能涉及代码的重新洗牌,但在今天的多核环境中,我猜某些编译器可能会看到优化的机会在这种缺乏规范的情况下,通过隐式地并行执行两个调用)?

编辑:我想澄清一下。标准中未指定顺序的事实并不意味着它未指定特定编译器(我假设它可能选择在文档中指定它)。未指定的行为可能使您不可移植,但编译器可能会根据给定规则一致地运行。我很想知道,纯粹出于学术好奇,这个规范是否真的是由编译器制定的(例如在手册中),如果是,这个选择是否一致或者可能被编译器选项或其他因素改变。以 gcc 为例。它的行为如何?是否一致?

最佳答案

未指定 - 我们还能说什么?由于您永远不应该编写依赖于顺序的代码(因为编译器当然可以更改它),所以这个问题仅供学术引用。如果您真的对特定编译器的功能感兴趣,请在您感兴趣的场景中检查发出的机器代码。

关于c++ - 函数调用顺序。它是编译器还是取决于情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169801/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com