uchar checkBorder(void) { if(this.box[3]!=0 && this.row>(MAXHANG-4)) return 1; else if(this.box[2]!=0 && this.row>(MAXHANG-3)) return 1; else if(this.box[1]!=0 && this.row>(MAXHANG-2)) return 1; else if(this.box[0]!=0 && this.row>(MAXHANG-1)) return 1; if((this.box[0] & 0x01) || (this.box[1] & 0x01) || (this.box[2] & 0x01) ||(this.box[3] & 0x01) ) { if(this.column<0) return 1; } else if((this.box[0] & 0x02) || (this.box[1] & 0x02) || (this.box[2] & 0x02) ||(this.box[3] & 0x02) ) { if(this.column<-1) return 1; } else if((this.box[0] & 0x04) || (this.box[1] & 0x04) || (this.box[2] & 0x04) ||(this.box[3] & 0x04) ) { if(this.column<-2) return 1; } else if((this.box[0] & 0x08) || (this.box[1] & 0x08) || (this.box[2] & 0x08) ||(this.box[3] & 0x08) ) { if(this.column<-3) return 1; } if((this.box[0] & 0x08) || (this.box[1] & 0x08) || (this.box[2] & 0x08) ||(this.box[3] & 0x08) ) { if(this.column>(MAXLIE-4)) return 1; } else if((this.box[0] & 0x04) || (this.box[1] & 0x04) || (this.box[2] & 0x04) ||(this.box[3] & 0x04) ){ if(this.column>(MAXLIE-3)) return 1; } else if((this.box[0] & 0x02) || (this.box[1] & 0x02) || (this.box[2] & 0x02) ||(this.box[3] & 0x02) ) { if(this.column>(MAXLIE-2)) return 1; } else if((this.box[0] & 0x08) || (this.box[1] & 0x08) || (this.box[2] & 0x08) ||(this.box[3] & 0x08) ) { if(this.column>(MAXLIE-1)) return 1; } return 0; }
时间: 2024-04-16 12:28:51 浏览: 26
根据提供的代码,这是一个名为`checkBorder`的函数,返回类型为`uchar`(可能是`unsigned char`类型)。
该函数用于检查当前对象的`box`数组中的位,以确定是否超出边界。
以下是对代码的逐行解释:
```c
uchar checkBorder(void)
{
if(this.box[3]!=0 && this.row>(MAXHANG-4))
return 1;
else if(this.box[2]!=0 && this.row>(MAXHANG-3))
return 1;
else if(this.box[1]!=0 && this.row>(MAXHANG-2))
return 1;
else if(this.box[0]!=0 && this.row>(MAXHANG-1))
return 1;
if((this.box[0] & 0x01) || (this.box[1] & 0x01) || (this.box[2] & 0x01) ||(this.box[3] & 0x01) ) {
if(this.column<0)
return 1;
}
else if((this.box[0] & 0x02) || (this.box[1] & 0x02) || (this.box[2] & 0x02) ||(this.box[3] & 0x02) ) {
if(this.column<-1)
return 1;
}
else if((this.box[0] & 0x04) || (this.box[1] & 0x04) || (this.box[2] & 0x04) ||(this.box[3] & 0x04) ) {
if(this.column<-2)
return 1;
}
else if((this.box[0] & 0x08) || (this.box[1] & 0x08) || (this.box[2] & 0x08) ||(this.box[3] & 0x08) ) {
if(this.column<-3)
return 1;
}
if((this.box[0] & 0x08) || (this.box[1] & 0x08) || (this.box[2] & 0x08) ||(this.box[3] & 0x08) ) {
if(this.column>(MAXLIE-4))
return 1;
}
else if((this.box[0] & 0x04) || (this.box[1] & 0x04) || (this.box[2] & 0x04) ||(this.box[3] & 0x04) ){
if(this.column>(MAXLIE-3))
return 1;
}
else if((this.box[0] & 0x02) || (this.box[1] & 0x02) || (this.box[2] & 0x02) ||(this.box[3] & 0x02) ) {
if(this.column>(MAXLIE-2))
return 1;
}
else if((this.box[0] & 0x08) || (this.box[1] & 0x08) || (this.box[2] & 0x08) ||(this.box[3] & 0x08) ) {
if(this.column>(MAXLIE-1))
return 1;
}
return 0;
}
```
总结:该函数通过检查当前对象的`box`数组中的位,以及`row`和`column`变量的值,来判断当前对象是否超出边界。如果超出边界,返回1;如果没有超出边界,返回0。
需要注意的是,代码中使用了一些未定义的变量和常量,例如`MAXHANG`和`MAXLIE`。这些变量的定义和值在代码中没有给出,可能是在其他地方定义的全局变量或宏定义。你需要根据实际情况进行适当的更改和定义。