我试图在我的程序中使用队列,但它无法编译,我不知道为什么。代码的相关部分如下。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#ifndef CUSTOMER
#define CUSTOMER
typedef int bool;
int r;
typedef struct{
int arrival;
int leaving;
} Customer;
static const int MAX_LENGTH = 100;
typedef struct{
int head;
int length;
Customer customer[MAX_LENGTH];
} CustomerLine;
void initializeQueue(CustomerLine* queue)
{
(*queue).head = 0;
(*queue).length = 0;
}
bool hasNext(CustomerLine* queue)
{
return (*queue).length > 0;
}
bool isFull(CustomerLine* queue)
{
return (*queue).length == MAX_LENGTH;
}
bool enqueue(CustomerLine* queue, Customer* customer)
{
if(isFull(queue))
return 0;
int index = ((*queue).head + (*queue).length) % MAX_LENGTH;
(*queue).customer[index] = *customer;
(*queue).length++;
return 1;
}
Customer* dequeue(CustomerLine* queue)
{
if(!hasNext(queue))
return 0;
Customer* result = &(*queue).customer[(*queue).head];
(*queue).length--;
(*queue).head = ((*queue).head + 1) % MAX_LENGTH;
return result;
}
字符串
错误说:
在文件范围内可变修改的“客户”
2条答案
按热度按时间deyfvvtc1#
那条线
字符串
就是问题所在替换为
型
查看为什么here和更多解释here或here或再次here。
此外:
#ifndef
之后需要一个#endif
。main
函数。mwecs4sa2#
在C中,
const
表示只读,不是常量,可以像宏一样使用。你不能像在这里那样使用变量来指定数组的维数:字符串