这个是其中之一: 计算两个矩形交集,矩形是r1,r2参数,结果返回rect参数. 若只定义两个变量,a,b 1 2必须一样,intersectrect(a,a,b) 不能13一样,intersectrect(a,b,a) 因为此函数先把r2赋值给rect,而rect参数是指针,导致r2的值变成了r1的值,最终处理的是两个相同的矩形. f nction intersectrect(o t rect: trect; const r1, r2: trect): boolean; begin rect := r1; if r2.left  r1.left then rect.left := r2.left; if    then  := ; if r2.right  r1.right then rect.right := r2.right; if r2.bottom  r1.bottom then rect.bottom := r2.bottom; res lt := not isrectempty(rect); if not res lt then fillchar(rect, sizeof(rect), 0); end;