我的代码实现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++;
}
}