c – 用于计算循环缓冲区中剩余空间的简化算法?

前端之家收集整理的这篇文章主要介绍了c – 用于计算循环缓冲区中剩余空间的简化算法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道是否有一种更简单的(单一)方法来计算循环缓冲区中的剩余空间而不是这个?
int remaining = (end > start)
                ? end-start
                : bufferSize - start + end;

解决方法

如果您担心预测条件不佳会降低cpu管道的速度,您可以使用:
int remaining = (end - start) + (-((int) (end <= start)) & bufferSize);

但这可能是过早的优化(除非你真的把它确定为热点).坚持使用您当前的技术,这种技术更具可读性.

原文链接:https://www.f2er.com/c/117677.html

猜你在找的C&C++相关文章