-1
A
回答
0
是否有在C语言的函数或技术,可以检查哪个先求?
您可以定义一个函数来将数字相乘并添加代码以产生一些输出。
int multiply(int n1, int n2)
{
printf("Computing %d*%d\n", n1, n2);
return n1*n2;
}
并使用该函数来执行乘法而不是使用乘法运算符。
multiply(5, 3) + multiply(9, 6);
+0
啊,但你怎么能保证编译器将不会内联整个事情和之前(或之后)重新排序打印的乘法? –
+1
@MatteoItalia,这将是非法的,因为它会改变程序的可观察行为。 –
+1
执行算术时没有任何可观察的内容,除非涉及对'volatile'变量的写入。顺便说一下,在这种情况下,不需要实际的运行时乘法,任何值得的任何优化器都会将结果直接放入可执行文件中。 –
相关问题
- 1. 首先评估表达式的哪一侧?
- 2. 为什么表达式*(b ++)不首先评估b ++?
- 3. 如何评估这些C表达式?
- 4. C#如何评估lambda表达式?
- 5. 如何评估表达式?
- 6. =和==首先得到评估?
- 7. 如何评估另一个表达式中的angularjs表达式
- 8. Python如何评估这个表达式?
- 9. 评估表达式
- 10. 在C中评估布尔表达式
- 11. 评估c中的数学表达式#
- 12. C中的表达式评估
- 13. 评估后缀C中的表达式
- 14. 如何评估树中的表达式?
- 15. 如何评估ExpressionVisitor中的表达式?
- 16. C如何评估这个表达式? C指针
- 17. 如何在AngularJS中评估表达式中的表达式
- 18. 哪个布尔表达式首先在包含OR操作的IF语句中被评估?
- 19. 表达式除以两个数字,但首先检查数字
- 20. 评估表达式通用C#评估条件多态性
- 21. C++表达式评估。 “评估”是什么意思?
- 22. 布尔表达式评估c#
- 23. WinRT C#动态表达式评估器
- 24. C#lambda表达式和懒惰评估
- 25. 评估表达式二叉树C++
- 26. 如何评估JavaScript表达式?
- 27. Angular如何评估表达式?
- 28. Python - 如何评估以下表达式?
- 29. 如何评估这些表达式?
- 30. 如何评估以下Javascript表达式?
对于MSVC https://msdn.microsoft.com/en-us/library/2bxt6kc4.aspx –
我也发现了这一点:http://stackoverflow.com/questions/16530140/precedence-and-associativity -of运营商,在-C/16530162#16530162这http://stackoverflow.com/questions/7112282/order-of-evaluation-of-operands –
因为有没有副作用,是什么意思它有在这里“评估第一”的一部分表达?如果在组合子表达式时遵守优先规则,则术语的评估顺序不是可观察到的现象(除非用调试器加入生成的程序集,但即使在那里情况并非如此清晰)。 –