c语言 - 数组类型具有不完整的元素类型"结构指令"



我如何使这个结构体指令可见的结构体cpu状态?就像如果我把cpu状态结构放在前面,它不工作,因为一些其他参数将不可见的结构指令,但如果我把它反过来,我有一个问题。

struct  cpu_state
{
int nextinstructionlinenumber;
char filename[200];
char RLO;
struct instruction instructionlist[INSTRUCTIONLIST_SIZE];
int instructionlistnumber;
struct variable variablelist[INSTRUCTIONLIST_SIZE];
int variablelistnumber;
};
struct cpu_state CPU; 

struct instruction{
char name[LINE_CHAR_NUM];
void(*function)(struct cpu_state* pstate, struct line* pline);
};

您可以创建不完整的结构声明,只要它们仅用于指针。例如,下面的顺序可以工作。请注意,我为struct variable创建了一个虚拟定义,因为它在文章中没有出现。你可以用任何你喜欢的来替换它:

struct variable {
int     dummy_val;
};
struct cpu_state;
struct line;
struct instruction{
char name[LINE_CHAR_NUM];
void(*function)(struct cpu_state* pstate, struct line* pline);
};
struct  cpu_state
{
int nextinstructionlinenumber;
char filename[200];
char RLO;
struct instruction instructionlist[INSTRUCTIONLIST_SIZE];
int instructionlistnumber;
struct variable variablelist[INSTRUCTIONLIST_SIZE];
int variablelistnumber;
};
struct cpu_state CPU;

相关内容

最新更新