Beispiel #1
0
int main() {
	Fifo fifo;
	fifo_init(&fifo);

	printf("Size (0): %i\n", fifo_size(&fifo)); 
	
	char c;

	// put a char
	fifo_put(&fifo, 'a');
	printf("%i %i\n",fifo.in, fifo.out);
	printf("Size (1): %i\n", fifo_size(&fifo)); 
	fifo_pop(&fifo, &c);
	printf("Pop a: %c\n",c);

	// Pop when zero elements
	printf("Pop (0,a): %i, %c\n", fifo_pop(&fifo, &c), c);

	// Print the size
	fifo_put(&fifo, 'a');
	printf("Size (1): %i\n", fifo_size(&fifo)); 
	fifo_pop(&fifo, &c);
	
	// put several chars
	fifo_put(&fifo, 'a');
	fifo_put(&fifo, 'b');
	fifo_put(&fifo, 'c');
	printf("Size (3): %i\n", fifo_size(&fifo));
	fifo_pop(&fifo, &c);
	printf("Pop a: %c\n",c);
	fifo_pop(&fifo, &c);
	printf("Pop b: %c\n",c);
	fifo_pop(&fifo, &c);
	printf("Pop c: %c\n",c);
	
	// Print int 1
	fifo_put(&fifo, 1);
	fifo_pop(&fifo, &c);
	printf("Pop 1: %i\n",c);

	// put negative number
	fifo_put(&fifo, -127);
	fifo_pop(&fifo, &c);
	printf("Pop -127: %i\n",c);
	
	// Check peek
	fifo_put(&fifo, 34);
	fifo_peek(&fifo, &c);
	printf("Peek 34: %i\n",c);
	printf("Size 1: %i\n", fifo_size(&fifo));
	fifo_pop(&fifo,&c);
	
	// Check peek 2
	fifo_put(&fifo, 75);
	fifo_put(&fifo, 32);
	fifo_peek_at(&fifo, &c, 1);
	printf("Peek 32: %i\n",c);
	printf("Size 2: %i\n", fifo_size(&fifo));

	// overflowtest (does not add any more elements)
	printf("Size (2): %i\n", fifo_size(&fifo));

	int j;
	for(j = 0; j < 130; j++) {
		//printf("Size: %i (%i,%i)\n", fifo_size(&fifo), fifo.in, fifo.out);
		fifo_put(&fifo, j);
	}	

	printf("Size (127): %i\n", fifo_size(&fifo));

	//printf("in: %i, out: %i\n", fifo.in, fifo.out);
	fifo_pop(&fifo, &c);
	printf("Pop 75: %i\n", c);	
	fifo_pop(&fifo, &c);
	printf("Pop 32: %i\n", c);

	printf("Size (125): %i\n", fifo_size(&fifo));

	// Second FIFO
	Fifo fifo2;
	fifo_init(&fifo);
	fifo_put(&fifo2, 'b');
	printf("Size: %i\n", fifo_size(&fifo2));
 	fifo_pop(&fifo2, &c);
	printf("Pop b: %c\n",c);	

	return 1;
}
Beispiel #2
0
uint32_t fifo_peek(fifo_t* p_fifo, void* p_elem)
{
    return fifo_peek_at(p_fifo, p_elem, 0);
}