そこで、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でエラーを見つけました。これは、スクリプト自体のフォーマット エラーが原因でした。ご協力ありがとうございました!