我正在用 C 语言做一个 Forth 解释器。我无法决定如何更好地实现 Forth 字典。
struct Word {
struct Word* next;
char* name;
int* opcode;
// int arg_count;
}
struct Dictionary {
struct Word words;
int size;
}
opcode
是一系列代码 - 单词的功能。所以每个opcode[i]对应于某个函数。我想它应该是一些带有元素的表[opcode<->function pointer]。但是如何实施呢?
我们不知道函数的大小。我们不能使用void*(或者我们可以?),因为我们必须以某种方式只让操作码执行该函数。
我应该怎么办?