测试博客

101 阅读1分钟

佛说,你是程序员,既非程序员,亦是程序员,于是我就是程序员。

测试代码:

#include<stdio.h>
#include<malloc.h>
 
struct Queue_Struct{
    int len;
    int head;
    int tail;
    char * buffer;
};
typedef struct Queue_Struct * Queue;
void Queue_Init(Queue Q,void * buffer,int len){
    Q->head = 1;
    Q->tail = 0;
    Q->len = len;
    Q->buffer = buffer;
}
//it not support realse space.
void Queue_Destroy(Queue Q){
    Q->head = 0;
    Q->tail = 0;
    Q->len = 0;
    Q->buffer = NULL;
}
int Queue_Isempty(Queue Q){
    return (Q->tail+1)%Q->len == Q->head;
}
int Queue_Isfull(Queue Q){
    return Q->head == Q->tail;
}
void Queue_Push(Queue Q,char data){
    Q->buffer[Q->head++] = data;
    Q->head%=Q->len;
    //not for empty check!
}
char Queue_Pop(Queue Q){
    char data;
    data = Q->buffer[++Q->tail];
    Q->tail%=Q->len;
    return data;
}

void case1(){
    char * data = (char *)malloc(sizeof(char)*10);
    Queue q_t = (Queue)malloc(sizeof(struct Queue_Struct));
    Queue_Init(q_t,data,10);
    int count = 0;
    while(!Queue_Isfull(q_t)){
        Queue_Push(q_t,count);
        printf("Push num %d\n",count);
        count++;
    }
    while(!Queue_Isempty(q_t)){
        int num = Queue_Pop(q_t);
        printf("pop num = %d\n",num);
    }

    //free 
    free(data);
    free(q_t);
}

int main(){
    case1();
    return 0;
}

测试代码完毕。markdown装载中...... 装载完毕,可以发布。