/******************************************************************************* * * * File: tau_queue.h * Description tau 队列操作 * Version V0.1 * Date 2021-02-25 * Author lzy *******************************************************************************/ #ifndef _TAU_QUEUE_H #define _TAU_QUEUE_H #include #include typedef struct node_t { void *data; struct node_t *next; } node_t; typedef node_t node; typedef struct { node *next; node *tail; int count; int max_size; } tau_queue_t; //申请node node *tau_new_node(void *data); //释放node void tau_free_node(node *qn); //申请队列 tau_queue_t *tau_new_queue(int max_size); //释放队列 void tau_free_queue(tau_queue_t *q); //入列 返回0 为失败,1为成功 int tau_queue_push(tau_queue_t *q, void *data); //出列 void *tau_queue_pop(tau_queue_t *q); //获取队列size int tau_queue_size(tau_queue_t *q); //检查队列是否为空 int tau_queue_empty(tau_queue_t *q); //检查队列是否满了 int tau_queue_full(tau_queue_t *q); #endif