Aleksey_75 (07.06.2019 15:10, просмотров: 95) ответил michas на Он про это
у меня по другому ))) но принцип тот же
#define FIFO_LEN_GET(queue) (queue.end_idx - queue.begin_idx)
#define FIFO_ADD(queue,item,MAX_LEN) (queue.data[queue.end_idx++ & (MAX_LEN - 1)] = item)
#define FIFO_EXTRACT(queue,MAX_LEN) (queue.data[queue.begin_idx++ & (MAX_LEN - 1)])
#define FIFO_FLUSH(queue) (queue.end_idx = queue.begin_idx)