C中的循环定义

时间:2011-09-21 15:46:38

标签: 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

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

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

谢谢!

1 个答案:

答案 0 :(得分:7)

如何把这条线放在最上面:

typedef struct _MySettings MySettings;

C FAQ: How can I define a pair of mutually referential structures?可能有用。