所以我传入了一个名为 SUB 的字符串。我使用 strcmp 将其与“SUB”进行比较。但是,它不会进入我的 if 循环。我不确定出了什么问题。这是我的一些代码:
char* single;
int singleLen= strlen(inputString);
char singleTemp[singleLen+1];
strcpy(singleTemp, inputString); //to tokenize without modifying input string
single = strtok(singleTemp, " \r\n");
if (strcmp("SUB", single) == 0){
if (size_list(stack) < 2){
fprintf(stderr, "Not enough elements in stack.\n");
exit(-2);
}
x = peek(stack);
stack = pop(stack);
y = peek(stack);
stack = pop(stack);
stack = push(stack, x-y);
//increment PC
PC++;
return stack;
}
问题可能出在我的输入脚本中吗?我想我在那里的一切都是正确的——在 SUB 或任何东西之后没有多余的空格。以防万一,这是我的代码,直到它无法进入 SUB if 循环的错误。
CONST R0 4 ;A=4
CONST R1 0 ;B=0
CONST R2 0 ;Constant 0 comparison
CONST R4 1
PUSH R2
PUSH R0
SUB ;ERROR OCCURS HERE
POP R3
提前致谢!
编辑:哦!我发现了 MUL 的错误。这是因为我的脚本本身存在格式错误。非常感谢您的帮助!