void main()
{
P0=0xff;
P1=30;
uchar ubox[2]; ************************
那个数组的定义,你可以放到main()函数的外面,也可以放到 P0 = 0xFF之前。
C语言不允许变量定义之前有执行动作,比如你那么 P0 = 0xFF,就属于执行动作,那么,在发生执行动作之后,不允许定义任何变量。这是C语言的语法,但是C++是可以的。
比如说 for(int i = 0;i<9;i++),这句话,在C语言是通不过的,但是在C++是可以的。
C51也遵循标准C的规则,所有的变量都申明完毕后才能写实际运行的代码。
因此,main函数中改成这样:
uchar ubox[2];
P0 = 0xff;
P1 = 30;
........
请把uchar obox[];放到main()函数外面。