有分号却说没分号该怎么改

下面代码不知道哪里出错了,显示error C129: missing ';' before 'temp',应该怎么改?大神们求告知
#include
#include
#define uint unsigned int
#define uchar unsigned char

unchar temp;
void delay(uint);

void main()
{
while(1)
{
temp=0xfe;
P1=temp;
while(1)
{
temp=crol(temp,1);
delay(60);
P1=temp;

        }

    
    }

}

unchar 是什么鬼。
检查错误不能只看编译器的错误提示,编译器并不知道你想干什么,所以遇到不符合你的想法的代码,不一定会立刻报错,它会一直跑到解释不下去的时候才报错,这个位置可能离你真正写错的地方已经很远。不过你这个地方还算不远,稍微回头看看就能发现。

是uchar,不是unchar