吾爱程序员:这里有好玩的游戏和软件
当前位置:首页C语言教程 → C语言优化技术

C语言优化技术

来源:网络 | 更新时间:2022-02-01 10:03:25
如何交换两个变量? 这个问题可能看起来很傻,也不令人讨厌。请参阅以下代码来交换两个整数
void myswap(int *x, int *y)
{
if (x != y)
{
*x^=*y^=*x^=*y;
}
}
乍一看,我们可能认为代码没有问题。然而,当被提示选择 XOR 交换逻辑的原因时,该人的线索较少。也许任何交换操作都可以满足一些极端情况的需要。 避免在生产软件中使用花哨的代码片段。他们创造了运行时的惊喜。我们可以在上面的代码中观察以下注释
  1. 代码行为未定义。语句 *x^=*y^=*x^=*y; 在没有任何序列点的情况下多次修改变量。
  2. 当在具有流水线架构的处理器上执行时,它会产生流水线停顿。
  3. 编译器无法利用优化交换操作。一些处理器将提供单个指令来交换两个变量。当我们选择标准库函数时,库被优化的可能性更大。甚至编译器也可以识别这样的标准函数并生成最佳代码。
  4. 代码可读性差。编写可维护的代码非常重要。

最新文章

热点资讯

手游排行榜

CopyRight 2020-2030吾爱程序员

鄂ICP备2021004581号-8

本站资源收集于网络,如有侵权请联系我们:35492删除0109@qq.com