c - 数组类型具有不完整的元素类型“结构指令”
问题描述
如何使这个 struct 指令对 struct cpu state 可见?就像如果我把 cpu state struct 首先它不起作用,因为其他一些参数对于 struct 指令是不可见的,但是如果我再次把它反转我就有问题了。
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;
推荐阅读
- apache-kafka - 如何使用 kafka sink 向 kafka topic 发送数据?
- node.js - 我的所有 API 的 Postman 都无法获取错误
- parameters - 从 CLI 运行具有不同配置的 Jupyter Notebook
- boolean - 为什么 `evalb((((3*x + 1)^5)(3*x - 1)/x^6 = ((3 + 1/x)^5)(3 - 1/x)) 假设 (0 < x)` 在 Maple 中返回 `false`?
- python - 在 Python 脚本中存储凭据的最佳实践
- php - 影响 Wordpress 主题的自定义字段
- java - 如何加载 Hibernate XML 配置而不存储到文件?
- c# - 棱镜事件聚合器。接收事件并再次发送
- python - python中的图像到像素数组
- javascript - JS如何做一个double each.for