Що таке кільцевої буфер?

Специфікація функціональних вимог

Тип даних «ring_t» буде типом даних, який містить покажчик на буфер, розмір його, індекс заголовка і хвоста, лічильник даних.

Функція ініціалізації «ring_init ()» ініціалізує буфер на основі отримання покажчика на структуру контейнера, створеного викликає функцією, що має визначений розмір.

Функція додавання дзвінка «ring_add ()» додасть байт в наступний доступний прогалину в буфері.

Функція видалення кільця «ring_remove ()» видалить байт з самого старого припустимого місця в контейнері.

Ring peek у функції «ring_peek () буде зчитувати число байтів «uint8_t ‘count’» з кільцевого буфера в новий, наданий в якості параметра, без видалення будь-яких значень, лічених з контейнера. Він поверне кількість фактично прочитаних байтів.

Функція очищення кільця «ring_clear ()» встановить «Tail» рівним «Head» і завантажить «0» у всі позиції буфера.