添加15然后应用&~0xf做什么?

tof*_*tim 1 c++

我有一些代码我正在研究它写的地方:

(basenameOffset + (basenameTotal+15)) &~0xf
Run Code Online (Sandbox Code Playgroud)

为什么会有人这样做?它有什么作用?我可以看到~0xf0xfffffff0.你为什么要阻止最后一点?

Chr*_*ung 5

它向上舍入到最接近的16的倍数.可能,这是为了确定为其分配缓冲区的大小basename,无论它是什么.:-)

但是,如果这是它的用途,即决定分配多大的缓冲区,那么这不是一个好策略.理想情况下,您希望每次扩展2倍或至少1.5倍.