gpt4 book ai didi

c - n = 0 和 n = n - n 之间的区别

转载 作者:太空狗 更新时间:2023-10-29 15:42:41 29 4
gpt4 key购买 nike

当我阅读 this 问题我记得有人曾经告诉我(很多年前),从汇编程序的角度来看,这两个操作非常不同:

n = 0;

n = n - n;

这是真的吗?如果是,为什么会这样?

编辑: 正如一些回复所指出的,我想这对于编译器来说很容易优化成同样的东西。但我觉得有趣的是,如果编译器采用完全通用的方法,它们为什么会有所不同。

最佳答案

编写您经常使用的汇编代码:

xor eax, eax

代替

mov eax, 0

那是因为对于第一条语句,您只有操作码而没有涉及的参数。您的 CPU 将在 1 个周期(而不是 2 个周期)内完成。我认为您的情况与此类似(尽管使用的是 sub)。

关于c - n = 0 和 n = n - n 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/867727/

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