错误:预期'('跟随一个函数。期望';'

时间:2018-01-04 23:46:02

标签: c function struct

我不明白为什么这个错误继续流行。这是我正在尝试构建的函数:/ person是一个结构。 Person *是一个指针。

void(*CreateNext)(struct Person *this, int isNextNext, ...)
    {
        Person* person;
        person = (Person*)malloc(sizeof(Person));
        person = CreatePerson(person);
        this->next = person;
    }

The error is on the first line and on the '{'

//This is the struct:
struct Person {
    char* name;
    int id;
    int numOfKids;
    char** kids;
    struct Person* next;
    void (*Print)(struct Person* this);
    void (*KillNext)(struct Person* this);
    struct Person* (*SelfDestruct)(struct Person* this);
    void (*CreateNext)(struct Person* this, int isNextNext, ...);
};

1 个答案:

答案 0 :(得分:0)

您正在声明函数范围之外的变量(指向函数的指针)。

您希望CreateNext是函数的名称,而不是变量的名称。声明应该是

void CreateNext(struct Person *this, int isNextNext, ...)
    {
        Person* person;
        person = (Person*)malloc(sizeof(Person));
        person = CreatePerson(person);
        this->next = person;
    }
顺便说一句,你不应该转换malloc()的返回值。演员是邪恶的。