/* FIFO 모듈 분리 */
/* queue3.c */
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 | #include <stdio.h> #include <stdlib.h> #include "queue3.h" void insert(Queue *ps, int data) { if(ps->rear == QUEUESIZE) { fprintf(stderr, "queue is full. \n"); exit(-1); } ps->queue[ps->rear] = data; ++ps->rear; } int delete(Queue *ps) { if(ps->front == ps->rear) { fprintf(stderr, "queue is empty. \n"); exit(-2); } return ps->queue[ps->front++]; } void initStack(Queue *ps) { ps->front=0; ps->rear=0; } |
/* testqueue3.c */
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 | #include <stdio.h> #include "queue3.h" int main(void) { Queue q1, q2; initStack(&q1); initStack(&q2); insert(&q1, 100); insert(&q1, 200); insert(&q1, 300); insert(&q2, 700); insert(&q2, 800); insert(&q2, 900); printf("q1 1st deleteQ : %d\n", delete(&q1)); printf("q1 2st deleteQ : %d\n", delete(&q1)); printf("q1 3st deleteQ : %d\n", delete(&q1)); printf("q2 1st deleteQ : %d\n", delete(&q2)); printf("q2 2st deleteQ : %d\n", delete(&q2)); printf("q2 3st deleteQ : %d\n", delete(&q2)); return 0; } |
/* queue.h */
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef QUEUE3_H #define QUEUE3_H #define QUEUESIZE 100 typedef struct{ int queue[QUEUESIZE]; int front; int rear; } Queue; void insert(Queue *ps, int data); int delete(Queue *ps); void initStack(Queue *ps); #endif |
'Study > 리눅스' 카테고리의 다른 글
| 리눅스 C언어로 컴파일하기 FIFO (5) (0) | 2014.09.12 |
|---|---|
| 리눅스 C언어로 컴파일하기 FIFO (4) (0) | 2014.09.12 |
| 리눅스 C언어로 컴파일하기 FIFO (2) (0) | 2014.09.12 |
| 리눅스 C언어로 컴파일하기 FIFO (1) (0) | 2014.09.12 |
| 리눅스 c언어로 컴파일하기 FILO (3) (0) | 2014.09.12 |
