当前位置:  开发笔记 > 编程语言 > 正文

当程序执行依赖于执行顺序时,它是未定义的行为吗?

如何解决《当程序执行依赖于执行顺序时,它是未定义的行为吗?》经验,为你挑选了1个好方法。

在表达式中

f( g(), h() );

评估顺序g()h()未定义.它只指定一个必须在另一个之前发生.如果g()h()都具有明显的副作用,在程序的执行依赖,这是不确定的行为?



1> templatetype..:

"未定义的行为"具有非常具体的技术含义:它意味着对程序的功能实际上没有任何限制.它可能会使计算机着火或侮辱用户.这里,执行顺序未指定 - 根据评估事物的顺序,有几种可能发生的选项.如果不了解有关编译器,优化器和执行环境的更多信息,您无法精确地预测它将会是哪一个.


@luskan我认为"取决于"某事意味着如果它不成立,事情就会严重破坏(换句话说,未定义的行为).OP的意思仅在于可见的副作用是否会发生变化.如果您不关心他们的订单,那么您不依赖他们(IMO).
推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有