为什么Node *create()函数被跳过执行?

#include<stdio.h>
#include<stdlib.h>
typedef struct node{
    int value;
    struct node *next;
}Node;
Node *head=NULL;
Node *create();
int main(){
    Node *create();
    while(head){
        printf("%d\n",head->value);
        head=head->next;
    }
    return 0;
}
Node *create(){
    int number;
    do{
        scanf("%d",&number);
        if(number!=-1){
            Node *p=(Node*)malloc(sizeof(Node));
            p->value=number;
            p->next=NULL;
            Node *last=head;
            if(last){
                while(last->next){
                    last=last->next;
                }
                last->next=p;
            }
            else{
                head=p;
            }
        }
    }while(number!=-1);
    return head;
}

node* create是定义名为create的指针变量,不是调用你的create函数,猜你想用head = create();

主函数里Node *create();是函数声明,当然不会调用。

主函数里是函数声明的格式,前面的Node*是函数返回值类型,调用函数可以写create();