C中的递归结构

时间:2015-04-14 14:27:00

标签: c recursion

#include <stdio.h>

typedef struct mystruct
{
    void (*ExitFnPtr)(mystruct);
    int a;
}mystruct;

int main()
{
    mystruct M;

    printf("Hello, World!\n");

   return 0;
}

大家好,有没有人知道如何解决上面列出的递归结构错误?

1 个答案:

答案 0 :(得分:4)

没有任何递归。

你的问题只是在结构的定义结束之前才知道mystruct的定义。

尝试

typedef struct mystruct
{
    void (*ExitFnPtr)(struct mystruct ms);
    int a;
} mystruct;

struct mystructmystruct相同(您只需输入它),但在那个时间点已知。

如果您不想更改原始代码,也可以进行转发声明(虽然它不像上面那样可读:

typedef struct mystruct mystruct;

typedef struct mystruct
{
    void (*ExitFnPtr)(mystruct ms);
    int a;
} mystruct;