这是我的queue.h
#define MAX_SIZE 40
void queueInit(void);
Bool queuePeek(void);
Bool queueIsEmpty(void);
Bool queueIsFull(void);
int queueSize(void);
void enqueue(Bool data);
Bool dequeue(void);
这是实施:
#include "queue.h"
static char head, tail, itemCnt;
static Bool buffer[MAX_SIZE];
void queueInit(void)
{
head = 0;
tail = -1;
itemCnt = 0;
}
Bool queuePeek(void)
{
return buffer[head];
}
Bool queueIsEmpty(void) {
return itemCnt == 0;
}
Bool queueIsFull(void) {
return itemCnt == MAX_SIZE;
}
int queueSize(void) {
return itemCnt;
}
void enqueue(Bool data)
{
if(!isFull()) {
if(tail == MAX_SIZE-1) {
tail = -1;
}
buffer[++tail] = data;
itemCnt++;
}
}
Bool dequeue(void)
{
Bool data = buffer[head++];
if(head == MAX_SIZE) {
head = 0;
}
itemCnt--;
return data;
}
现在我尝试调用main.c中的函数
queueInit();
之后我收到错误“'queueInit()'的冲突类型。 你能帮我解决一下这个问题吗?
谢谢,
基督教
答案 0 :(得分:0)
使用GCC gcc queue.c -Wall -std=c11 -c queue
我遇到了以下问题:
第一个问题可以使用typedef _Bool Bool
来解决,而静态变量的类型应该更改为int
,并且更改函数名称以匹配标头声明。