void display(uchar shi1,uchar ge1,uchar shi2,uchar ge2) { P3=0xfe; P0=table[shi1];
看一下前面代码,有些错误要等到后面才会被检测到,报错是46行,也就是这个函数的开始,但是这行看起来本身没什么问题,所以问题很可能出在前一句。比如括号的问题,你在45行少写个后括号,编译器并不会认为有问题,到46句发现你写了一个不应该出现在这里的语句,才会提示有错误。