嘿,我想知道是否有人可以帮助我使用 C 中的一流标签。
我目前正在尝试从内存(AVR 设备的闪存)中读取 java 字节码,我想将每条指令视为一个标签,并通过使用 goto 语句并跳转到适当的标签来调度指令。
但问题是我用来从内存中读取指令的函数返回一个无符号字节。
u08_t nvmfile_read08(void *addr) {
u08_t val;
addr = NVMFILE_ADDR(addr); // remove marker (if present)
memcpy_P((u08_t*)&val, (PGM_P)addr, sizeof(val));
return val;
}
instr = nvmfile_read08(pc);
所以我的问题是如何将 instr 转换为:
void *ptr;
ptr = &&instr;
goto *ptr;
然后这段代码将理想地跳转到这个标签:(假设 iload 是最后读取的指令)
iload:
// Execute the iload jvm instruction.
谢谢