以下代码的含义是什么:

WORD len;
LWORD in;
LWORD out;

WORD buff_dlen(CBUFF *bp)
{
    return((WORD)((bp->in - bp->out) & (bp->len - 1)));
}

我知道bp->in - bp->out意味着inout之间的区别,但它与& (bp->len - 1);有什么关系?

最佳答案

函数返回两倍幂的环形缓冲区中可供读取的空间。

关于c - C代码说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4812391/

10-13 02:59