C中的循环定义

Alb*_*ore 1 c struct typedef definition

我写的是:

typedef enum _MyStatus
{
    MY_STATUS_OK = 0,
    MY_STATUS_GENERAL_ERROR = -1,

} MyStatus;

typedef MyStatus (*MyCallback)(MySettings *settings);

typedef struct _MySettings
{
    MyCallback callback;
} MySettings
Run Code Online (Sandbox Code Playgroud)

但是,它不会像定义MyCallback时那样编译它不知道MySettings.如果我交换了MySettings和MyCallback,那将是另一回事:MySettings不会知道MyCallback.

在C中处理这类问题有多普遍?

谢谢!

cni*_*tar 7

把这条线放在顶部怎么样:

typedef struct _MySettings MySettings;
Run Code Online (Sandbox Code Playgroud)

这个C FAQ:如何定义一对相互参照结构?可能有用.