📄 cq.c
字号:
#include "cq.h"int CQ_len ( CQ * pQ ){int len = 0; if ( pQ->rd <= pQ->wt ) len = pQ->wt - pQ->rd; else len = pQ->wt - pQ->rd + pQ->size; return len;}int CQ_space ( CQ * pQ ){int len = 0; if ( pQ->wt < pQ->rd ) len = pQ->rd - 1 - pQ->wt; else len = pQ->rd - 1 - pQ->wt + pQ->size; return len;}int CQ_write_in ( CQ * pQ, unsigned char * pbuf, int nSize ){int wt = pQ->wt;int rd = pQ->rd;int n = pQ->size;unsignedchar * q = pQ->data;unsignedchar * p = pbuf; if ( p == 0 ) return 0; if ( q == 0 ) return 0; while ( rd <= wt ) { if ( wt + 1 >= n && rd == 0 ) break; q[ wt++ ] = *p++; if ( wt >= n ) wt = 0; if ( --nSize <= 0 ) break; } while ( wt < rd - 1 ) { q[ wt++ ] = *p++; // if ( wt >= n ) wt = 0; if ( --nSize <= 0 ) break; } pQ->wt = wt; return (int)(p - pbuf);}int CQ_read_out ( CQ * pQ, unsigned char * pbuf, int nSize ){int wt = pQ->wt;int rd = pQ->rd;int n = pQ->size;unsignedchar * q = pQ->data;unsignedchar * p = pbuf; if ( p == 0 ) return 0; if ( q == 0 ) return 0; while ( rd != wt ) { *p++ = q[ rd++ ]; if ( rd >= n ) rd = 0; if ( --nSize <= 0 ) break; } pQ->rd = rd; return (int)(p - pbuf);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -