16x16LED点阵显示屏为何有6个错误

问题遇到的现象和发生背景

16X16LED点阵显示屏参考程序rebuild后为何会出现6个错误,来自《单片机原理与应用设计》的设计实例。
for语句那里应该不会有错的,程序还是给我报错了,我不理解。敬请各位指出我的问题所在。

问题相关代码,请勿粘贴截图

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define out0 P0
#define out2 P2
#define out1 P1
void delay(uint j)
{
uchar i=250;
for(;j>0;j--)
{
while(--i);
i=100;
}
}
uchar code string[]=
{

}
void main()
{
uchar i,j,n;
while(1)
{
for(j=0;j<4;j++)
{
for(n=0;n<40;n++)
{
for(i=0;i<16;i++)
{
out1=i%16;
out0=string[i2+j32];
out2=string[i2+1+j32];
delay(4);
out0=0xff;
out2=0xff;
}
}
}
}
}

运行结果及报错内容

project 1.c - 6 Error(s), 0 Warning(s).

我的解答思路和尝试过的方法

我试着对应课本上的参考程序重新写一遍,重新手打一遍程序,结果还是出现6个错误。

我想要达到的结果

希望能够指正错误的地方,进行rebuild,