gpt4 book ai didi

结构声明和函数指针之间的循环依赖

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:20 24 4
gpt4 key购买 nike

<分区>

我有一个结构,它有一个函数指针作为成员变量。函数指针将指向结构的指针作为其参数之一。

通过查看此处针对此类循环依赖项发布的解决方案,我使用了前向声明以便能够编译。

我仍然有无法初始化结构的问题。下面发布的是代码和输出。

编辑:我之前的 MVCE 没有正确重现问题。我可以通过命名结构而不是仅仅使用结构别名来编译它。虽然不确定为什么。

#include "stdio.h"

//Forward declaration
struct data;

typedef int(*funcPtr) (struct data* a);

typedef struct
{
int a;
int b;
funcPtr foo;
}data;

int foo(data* pData)
{
return 0;
}

static data testData[] = {{1,1,foo}, {0,2,foo},};

int main()
{
printf("Just trying to compile this program\n");
return 0;
}

错误输出--

compileError.c:20:1: warning: initialization from incompatible pointer type [enabled by default]
static data testData[] = {{1,1,foo}, {0,2,foo},};
^
compileError.c:20:1: warning: (near initialization for \u2018testData[0].foo\u2019) [enabled by default]
compileError.c:20:1: warning: initialization from incompatible pointer type [enabled by default]
compileError.c:20:1: warning: (near initialization for \u2018testData[1].foo\u2019) [enabled by default

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com