-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcirculer_buffer.c
More file actions
57 lines (51 loc) · 804 Bytes
/
circuler_buffer.c
File metadata and controls
57 lines (51 loc) · 804 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#define BUFFER_SIZE 8 // max size of buffer
#define TRUE 1
#define FALSE 0
int buffer_length = 0; // number for data in buffer
int rd_index = 0;
int wr_index = 0;
int buffer[BUFFER_SIZE]; // array to store data;
int is_buffer_full(void)
{
if(buffer_length == BUFFER_SIZE)
{
return TRUE;
}
return FALSE;
}
int is_buffer_empty(void)
{
if(buffer_length == 0)
{
return TRUE;
}
return FALSE;
}
void write_buffer(int data)
{
if(is_buffer_full())
{
return;
}
buffer[wr_index] = data;
wr_index++;
buffer_length++;
if(wr_index == BUFFER_SIZE)
{
wr_index = 0;
}
}
void read_buffer(void)
{
if(is_buffer_empty())
{
return;
}
printf("%d",buffer[rd_index])
buffer_length--;
rd_index++;
if(rd_index == BUFFER_SIZE)
{
rd_index = 0;
}
}