可以在标头的开头声明一个结构,然后在文件中稍后定义它吗?

时间:2019-03-13 12:02:20

标签: c struct scope header declaration

我的任务有问题。我必须对某些特定操作实施撤消和重做。在控制器的头文件中,我有以下代码。

typedef struct {
    Function_Call* undo_function;
    Function_Call* redo_function;

}Operation ;

typedef struct{

    struct Operation** operations;
    int cf;
    int index;
    int size;
    int max_size;

}UndoController;

typedef struct{

    Medicine_Repository* medicine_repository;
    UndoController* undoController;

}Controller;


typedef struct{

    void (*func)(Medicine*,Controller*);
    Medicine* argument_medicine;
    Controller* argument_controller;

}Function_Call;

控制器必须了解undo_controller,undo_controller需要了解Operation,Operation需要了解Function_Call,而Function_Call需要了解控制器。在此“循环”中,一个结构将无法看到它必须执行的操作,并且会发生错误。是否可以在文件开始时以某种方式预先声明一个结构,然后在同一头文件中对其进行定义?

0 个答案:

没有答案