繁体   English   中英

点作为函数参数C

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM