如何摆脱 C 中的循环依赖

问题描述 投票:0回答:1

我是 C 新手,我被这个问题困扰了。 在 C# 中,做这样的事情是完全可以的,但在 C 中,编译器的工作方式不同,它需要事先知道类型定义。

struct FN;

typedef struct {
    void (*create) (FN *fn);
} Window;

typedef struct 
{
    Window window;
} 
FN;

是否有某种带有指针等的 C 技巧可以用来让它工作? 我正在尝试创建一个“管理器”类,我可以在其中调用模块上的函数,然后将管理器传递到需要的地方。

c oop dependencies circular-dependency
1个回答
0
投票

就写吧

typedef struct FN FN;

typedef struct {
    void (*create) (FN *fn);
} Window;

struct FN
{
    Window window;
};
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.