它来到了我的注意following fact:功能评价的目的,例如在一笔,是在标准未指定,并因此可以在任何顺序进行。 (我怀疑它,它可能涉及到代码的重新洗牌,但在当今的多核环境中,我猜一些编译器可能会看到一个机会通过隐式地并行执行这两个调用来优化缺乏规范)?函数调用的顺序。它是编译器还是情况依赖?
编辑:我想澄清。订单在标准中没有说明的事实并不意味着它对于特定的编译器(可以选择使其在文档中指定,我假设)没有指定。未指定的行为可能会使您不可移植,但编译器可能会按照给定的规则保持一致。如果这个规范实际上是由编译器完成的(例如在手册中),并且如果这个选择是一致的,或者可能被编译器选项或其他因素改变,我有兴趣知道纯粹是为了学术好奇。例如,拿gcc。它的行为如何?它是一致的吗?
我认为它也可能取决于调用约定。 – kennytm 2011-05-29 19:08:52
@ Kenny你为什么这么认为? – 2011-05-29 19:13:38
这甚至可以在编译之间改变。 – Xeo 2011-05-29 19:15:04