[英]points as function parameters C
这可能是一个简单的解决方案,我只是尝试将我的java数据结构分配移植到C而不是C。
这是我得到的错误:
test.c:4:错误:“ *”标记之前应有预期的“)”
test.c:11:错误:“ *”令牌之前应有预期的“)”
#include <stdio.h>
#include <stdlib.h>
void to_screen(NODE *cur){
while(cur->next != NULL){
printf("%d\n", cur->data);
cur = cur->next;
}
}
void add_first(NODE *head, int data){
NODE *cur;
int i;
for(i=0; i<10; i++){
cur = malloc(sizeof(NODE));
cur->data = data;
cur->next = (*head).next;
head->next = cur;
}
}
typedef struct node{
int data;
struct element *next;
}NODE;
int main(){
int i;
NODE *head;
for(i=0; i<10; i++){
add_first(head, i);
}
to_screen(head);
}
您需要将结构的定义移至to_screen函数上方。 编译器说它不知道什么是NODE。
您需要先定义NODE,然后再使用它。 将定义移到顶部。
您需要将此块移到顶部,作为其他2个答案的建议。
typedef struct node{
int data;
struct element *next;
}NODE;
您可能会问原因。 原因是C语言规范不像Java。 因此,它从上到下进行各种编译。 因此,如果看到未定义的内容,它将在该点之上寻找定义,如果看到定义,它将得到它。 它不在代码行下方
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.