C中的循环定义

我写的是:

typedef enum _MyStatus { MY_STATUS_OK = 0, MY_STATUS_GENERAL_ERROR = -1, } MyStatus; typedef MyStatus (*MyCallback)(MySettings *settings); typedef struct _MySettings { MyCallback callback; } MySettings 

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

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

谢谢!

把这条线放在最上面怎么样:

 typedef struct _MySettings MySettings; 

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