int rI =0;
int wI=0;
#define FIFO_SIZE 3
int checkAvail()
{
int avail=0;
if(wI<rI)
avail= (rI-wI);
else
avail = (FIFO_SIZE-wI+rI);
return avail;
}
int addFIFO(int *a, int val)
{
if(checkAvail()>0)
{
a[wI]=val;
wI++;
if(wI>FIFO_SIZE)
wI=0;
}
else
{
printf("FIFO full");
}
return 0;
}
int remFIFO(int *a)
{
int val;
if((FIFO_SIZE-checkAvail()>0))
{
val =a[rI];
rI++;
if(rI>FIFO_SIZE)
rI=0;
}
else
{
printf("FIFO empty");
}
return 0;
}
int main(array<System::String ^> ^args)
{
int FIFO_ARRAY[FIFO_SIZE]={};
addFIFO(FIFO_ARRAY,1);
addFIFO(FIFO_ARRAY,2);
addFIFO(FIFO_ARRAY,3);
addFIFO(FIFO_ARRAY,4);
remFIFO(FIFO_ARRAY);
remFIFO(FIFO_ARRAY);
remFIFO(FIFO_ARRAY);
remFIFO(FIFO_ARRAY);
remFIFO(FIFO_ARRAY);
}
Nguồn
2014-06-29 00:05:35
Độ phức tạp của mã tăng lên mức độ an toàn và mạnh mẽ bạn muốn. Bạn có muốn nó ngăn chặn tràn/tràn, ví dụ? –
Lưu ý: bộ đệm tròn (vòng tròn) khác với hàng đợi * tròn *. –
Tôi chỉ cần lưu trữ 5 giá trị cuối cùng của một số dữ liệu, vì vậy bất kỳ điều gì có thiết kế tốt hơn để thực hiện điều đó. –