|
楼主 |
发表于 2019-11-7 15:55:12
|
显示全部楼层
private void CreateQueue(int [] buf ,int length)
{
buf[0] = length;
buf[1] = 3;
buf[2] = 0;
}
private int GetDataFromQueue(int[] buf)
{
if (buf[2] == 0)
return (int)QueueStatus.QUEUE_NODATA;
int i;
i = buf[buf[1]];
buf[buf[1]] = 255;//255是人为定义的空标识
buf[2]--;
buf[1]++;
if (buf[1] >= buf[0] + 3)
{
buf[1] = 3;
}
return (i);
}
QueueStatus InsertDataToQueue(int []buf, int dat)
{
int i;
if (buf[2] == buf[0]) return QueueStatus.QUEUE_FULL;
else
{
if (buf[1] + buf[2] < buf[0] + 3) i = buf[1] + buf[2];
else i = buf[1] + buf[2] - buf[0];
}
buf[i] = dat;
//buf[1]++;
buf[2]++;
return QueueStatus.QUEUE_OK;
} |
|