我的任务有问题。我必须对某些特定操作实施撤消和重做。在控制器的头文件中,我有以下代码。
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需要了解控制器。在此“循环”中,一个结构将无法看到它必须执行的操作,并且会发生错误。是否可以在文件开始时以某种方式预先声明一个结构,然后在同一头文件中对其进行定义?