1. 程式人生 > >環形佇列FIFO實現方法

環形佇列FIFO實現方法

int fFifoPop(CFifo *myfifo, int *data){
     UINT tmp_len;     
     UCHAR tmp_char;
     if(myfifo->emptyflag != EMPTY){
         tmp_len = myfifo->m_rp;
         tmp_char = myfifo->m_buf[tmp_len];    
         *data = tmp_char;
         tmp_len++;     
         if (tmp_len >= myfifo->m_bufsize) tmp_len = 0;
            myfifo->m_rp = tmp_len;
         if (tmp_len == myfifo->m_wp) { 
            myfifo->emptyflag = EMPTY;
          }
    myfifo-> fullflag = !FULL;
    return TRUE;
     }
  else  return ERROR_EMPTY_R;
}