【发布时间】:2011-09-22 20:58:01
【问题描述】:
uint64_t n; // two 32-bit integers
return ( (uint32_t)(n >> 32) == (uint32_t)n );
以原子方式比较 uint64_t 的 32 个最高有效位和 32 个最低有效位的最快方法是什么?
我认为一个可怕的解决方案是:获取自旋锁,读取 32 LSB,读取 32 MSB,比较得到结果,释放自旋锁,返回结果。有什么方法可以做到这一点而不必使用自旋锁?
【问题讨论】:
-
这不完全取决于底层架构而不是 C 语言吗?