データを取り込み、いっぱいになると最も古いデータを解放して新しいデータ用のスペースを作る 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が配列サイズを超えて増加するために配列がいっぱいになると失敗することです。これを解決する方法はありますか?