我有这个功能:
void run(int PC)
{
int A = 0, op = 0, arg = 0, i = 0;
char *xpress = NULL, *acode = NULL, strarg[CL_ARG_SIZE];
while (1)
{
printf("PC: %03x | A: %03i |", PC, A);
op = data[PC]; arg = data[PC+1];
PC += 2;
for (i=0 ; i<21 ; ++i)
if (op == opcode_table[i].op)
{
acode = opcode_table[i].mnemo;
sprintf(strarg, "0x%x", arg);
xpress = replace(opcode_table[i].instruct, "_", strarg);
break;
}
printf(" %s %x\t| %s \t", acode, arg, xpress);
step();
exec_instruct(op, arg, &A, &PC);
}
}
当我尝试编译程序时,我收到以下错误:
:103:35:错误:'opcode_table'未声明(首次使用此功能) :103:35:注意:每个未声明的标识符仅针对它出现在
中的每个函数报告一次
我做错了什么?
答案 0 :(得分:2)
您的函数中有三行代码,您可以使用数组变量opcode_table
而不首先声明它。从:
if (op == opcode_table[i].op)