编译时出现此错误
queue.c: In function ‘enqueue’:
queue.c:25:10: error: ‘node’ undeclared (first use in this function)
queue.c:25:10: note: each undeclared identifier is reported only once for each function it appears in
为什么会出现这个?我不明白如何定义变量节点。
这是我的排队代码:
void enqueue(Queue* queue, int value){
QNode* node =(QNode *)malloc(sizeof(struct QNode));
node->data = value;
if(queue->size == 0){
q->front = node;
q->rear = node;
}else{
queue->rear->next = node;
queue->rear = node;
queue->size++;
}
}
在文件的开头,我这样定义QNode和Queue:
typedef struct QNode;
struct QNode{
struct QNode* next;
int data;
} QNode;
typedef struct Queue{
int size;
struct QNode* front;
struct QNode* rear;
} Queue;
最佳答案
虽然从技术上来说并不是一个错误:
typedef struct QNode;
struct QNode{
...
最好写成:
typedef struct QNode {
...
您还拥有:
if(queue->size == 0){
q->front = node;
q->rear = node;
q 在哪里定义的?
也许你的意思是:
if(queue->size == 0){
queue->front = node;
queue->rear = node;
关于c - 错误: ‘node’ undeclared (first use in this function),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20207694/