equal
deleted
inserted
replaced
20 tail. The buffer head is always the next vacant slot into which an object |
20 tail. The buffer head is always the next vacant slot into which an object |
21 is added. The buffer tail is always the slot from which the next object is |
21 is added. The buffer tail is always the slot from which the next object is |
22 removed. The tail always logically follows the head and the implementation |
22 removed. The tail always logically follows the head and the implementation |
23 ensures that the tail never overtakes the head.</p> |
23 ensures that the tail never overtakes the head.</p> |
24 <fig id="GUID-18737BF9-5382-5431-8B3E-68C7CCD3DF86"> |
24 <fig id="GUID-18737BF9-5382-5431-8B3E-68C7CCD3DF86"> |
25 <image href="GUID-F057FFF8-EA6A-5719-BE6B-B37950A07A7B_d0e223645_href.png" placement="inline"/> |
25 <image href="GUID-F057FFF8-EA6A-5719-BE6B-B37950A07A7B_d0e219908_href.png" placement="inline"/> |
26 </fig> |
26 </fig> |
27 <p>Physically, the buffer is a contiguous block of memory. The implementation |
27 <p>Physically, the buffer is a contiguous block of memory. The implementation |
28 provides the appearance of circularity.</p> |
28 provides the appearance of circularity.</p> |
29 <p>A circular buffer has a maximum capacity which must be set before the circular |
29 <p>A circular buffer has a maximum capacity which must be set before the circular |
30 buffer can be used. The maximum capacity can be changed at any time but any |
30 buffer can be used. The maximum capacity can be changed at any time but any |