#include <stdio.h>
typedef struct mystruct
{
void (*ExitFnPtr)(mystruct);
int a;
}mystruct;
int main()
{
mystruct M;
printf("Hello, World!\n");
return 0;
}
大家好,有没有人知道如何解决上面列出的递归结构错误?
答案 0 :(得分:4)
没有任何递归。
你的问题只是在结构的定义结束之前才知道mystruct的定义。
尝试
typedef struct mystruct
{
void (*ExitFnPtr)(struct mystruct ms);
int a;
} mystruct;
struct mystruct
与mystruct
相同(您只需输入它),但在那个时间点已知。
如果您不想更改原始代码,也可以进行转发声明(虽然它不像上面那样可读:
typedef struct mystruct mystruct;
typedef struct mystruct
{
void (*ExitFnPtr)(mystruct ms);
int a;
} mystruct;