|
|
1
2
你的代码是否假设递增32位变量是一个原子操作?在32位CPU上递增64位变量可能不会是原子性的,除非你竭尽全力做到这一点。 例子:
如果另一个线程或中断处理程序读取以下值
|
|
2
1
我怀疑是否存在性能问题,至少如果你使用64位处理器,因为变量几乎总是在缓存中。 |
|
3
1
在广泛的范围内,这种变化是无害的。您需要确保访问该值的任何代码都准备好处理64位的数量,并且格式化其值的任何码都需要更改,但除此之外,它应该足够安全——在没有任何关于其他代码的信息的情况下,这些代码可能会因更改而损坏。 |
|
|
4
0
你应该没事的。 我假设(从pSOS)你正在为Moto 68000编码,这是一个32位处理器;在那里处理64位数字稍微慢一些,因为它需要更多的指令(例如,添加、检查进位、分支或添加到高位字),但我怀疑你是否非常担心四个周期的成本。如果你使用的是64位处理器,那么64位操作与32位操作的速度完全一样快。
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |