我正在尝试编写一个 FIFO 队列,该队列接收数据,一旦填满就释放最旧的数据,为新数据腾出空间。
我是编程新手,但设法想出了以下代码:
int Q[size], f=0, r=-1;
int Qfull()
{
if (r==size) return 1;
return 0;
}
int Qinsert()
{
if(Qfull())
{
elem=Q[f];
f=f+1;
return elem;
r++;
Q[r]=SPI1BUF;
}
else
{
r++;
Q[r]=SPI1BUF;
}
}
我遇到的问题是,这不会移动数据,并且由于 r 增加超过数组大小,因此一旦数组已满就会失败。有没有办法解决这个问题?
最佳答案
What Dan said , 而且你真的不能在 return
后面放语句;他们不会被处决。
关于在 c 中创建一个 FIFO 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19771786/