C에서 Forth 해석기를 사용하고 있습니다. Forth 사전을 더 잘 구현하는 방법을 결정할 수 없습니다.C에서 함수 포인터 테이블
struct Word {
struct Word* next;
char* name;
int* opcode;
// int arg_count;
}
struct Dictionary {
struct Word words;
int size;
}
opcode
는 코드 시퀀스이다 - 단어 기능한다. 따라서 각 opcode [i]은 일부 기능에 해당합니다. 나는 그것이 어떤 테이블 [opcode < -> 함수 포인터]와 함께 있어야한다고 생각합니다. 그러나 그것을 구현하는 방법?
함수의 크기를 알 수 없습니다. void *을 사용할 수 없습니다 (또는 할 수 있겠습니까?).
어떻게해야합니까?
이것은 전혀 명확하지 않습니다. 함수 포인터에 정수를 매핑하는 테이블은 완벽하게 가능합니다. 여기서 구체적인 문제는 무엇입니까? –
@OliCharlesworth, 함수의 서명이 다릅니다 – greensher
"struct word words;" ("struct Word * words;와는 대조적으로) 일반적으로 좋은 생각이 아닙니다. –