我不断收到一个错误有RangeCheck
,read
,prntword
。错误是:
undefined reference to RangeCheck(short, short, short)
undefined reference to read(short*, bool)
undefined reference to prntword(short)
我试图更改放置函数的位置(在main上方,在main上方),但是我不知道该如何解决该错误。
#include <stdio.h>
#include <stdlib.h>
#define READ 10
#define WRITE 11
#define LOAD 20
#define STORE 21
#define ADD 30
#define SUBTRACT 31
#define DIVIDE 32
#define MULTIPLY 33
#define BRANCH 40
#define BRANCHNEG 41
#define BRANCHZERO 42
#define HALT 43
#define CELLS 100
#define RANGE 9999
#define SENTINEL -1
#define DEBUG 0
short RangeCheck(short word, short min, short max);
char* prntword(short word);
bool read(short *data, bool check);
int main()
{
bool error = false;
char *word, OperationCode, Operand;
short memory[CELLS], InstructionRegister;
int counter, Accumulator;
Accumulator = 0;
for (int i = 0; i < CELLS; i++) {
memory[i] = 0;
}
for (counter = 0; !error; counter++); {
counter = RangeCheck(counter, 0, CELLS - 1);
InstructionRegister = memory[counter];
OperationCode = InstructionRegister / 100;
Operand = InstructionRegister % 100;
}
switch(OperationCode) {
case READ:
read(&memory[Operand], false);
break;
case WRITE:
printf("%s\n", word = prntword(memory[Operand]));
break;
case LOAD:
Accumulator = memory[Operand];
break;
case STORE:
memory[Operand] = RangeCheck(Accumulator, -RANGE, RANGE);
break;
case ADD:
Accumulator += memory[Operand];
break;
case SUBTRACT:
Accumulator -= memory[Operand];
break;
case DIVIDE:
Accumulator /= memory[Operand];
break;
case MULTIPLY:
Accumulator *= memory[Operand];
break;
case BRANCH:
break;
}
}
尝试更换
short RangeCheck(short word, short min, short max);
char* prntword(short word);
bool read(short *data, bool check);
和
short RangeCheck(short word, short min, short max){return 1;}
char* prntword(short word){return 0;}
bool read(short *data, bool check){return 0;}
并且应该为您编译(但是可能无法按预期工作)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句