{
P0 = 0xff
p 1 = 30;
uchar ubox[2]; ************************
You can put the definition of the array outside the main () function or before P0 = 0xFF.
C language is not allowed to execute before variable definition. For example, if you have P0 = 0xFF, it belongs to execution. Then, after execution, you are not allowed to define any variables. This is the grammar of C language, but C++ is also acceptable.
For example, for (int I = 0;; I<9; I++), this sentence can't pass in C language, but it's ok in C++.