FIFO的实现

我的代码实现FIFO;

#include<stdio.h>
#include<stdlib.h>

typedef struct
{

int *prt;
int heap;
int tal;
int size;

} fifo ;

fifo buff;

char tab[]="hello world" ;

void fifo_init()
{  
    buff.prt=(int*)malloc(sizeof(int));
 buff.heap=0;
 buff.tal=0;
 buff.size=200;
}

void fifo_input(int data)
{
 buff.prt[buff.tal]=data;
 buff.tal++;
 if(buff.tal==200)
  buff.tal=0;

}

void fifo_output(int *data)
{
 *data=buff.prt[buff.heap];
 buff.heap++;
 if(buff.heap==200)
  buff.heap=0;

}

char fifo_is_empty()
{
 if(buff.heap==buff.tal)
  return 0;   //fifo empty
 return 1;
}

char fifo_is_full()
{
if(buff.heap>0)
 {
     if(buff.tal=buff.heap-1)
   return 0;   //FULL FIFO
 }
else if(buff.tal=buff.size-1)
         return 0;

 return 1;    //UNFULL FIFO
}

void main()
{   int i;
 int* vall=(int*)malloc(sizeof(int));
 fifo_init();
 for( i=0 ;i<200;i++)
 {
 fifo_input(i);
 }

 for(i=0 ;i<200;i++)
 {
 fifo_output(vall);
   // printf("%d\n", buff.prt[i]);
 printf("%d\n", *vall);
 vall++;
 }

}

你可能感兴趣的:(struct,input,output)