Definição circular em C
O que eu escrevi é:
typedef enum _MyStatus
{
MY_STATUS_OK = 0,
MY_STATUS_GENERAL_ERROR = -1,
} MyStatus;
typedef MyStatus (*MyCallback)(MySettings *settings);
typedef struct _MySettings
{
MyCallback callback;
} MySettings
No entanto, não seria compilado, pois ao definir o MyCallback, ele não conhece o MySettings. Se eu trocasse o MySettings e o MyCallback, seria o contrário: o MySettings não saberia do MyCallback.
Como geralmente esse tipo de problema é tratado em C?
Obrigado