我在C中有一段代码,内容如下:
a = b & ((1<<24) - 1);
Run Code Online (Sandbox Code Playgroud)
如果我没有误会,这相当于:
a = b & 0xFFFFFF;
Run Code Online (Sandbox Code Playgroud)
写第一个在性能方面有什么好处?对我来说,阅读起来比较复杂,但我想那个写过的人有比我更好的C背景.
谢谢
很可能,没有任何性能差异,因为编译器会发现它((1<<24) - 1)是一个常量表达式,并将在编译时对其进行评估.
我们只能推测为什么代码的原作者选择以他们的方式编写它.也许他们认为它更好地表达了意图("掩盖除了24个最不重要的部分之外的所有部分b").
如果这是他们的推理,我个人倾向于同意他们.
| 归档时间: |
|
| 查看次数: |
293 次 |
| 最近记录: |