一个常用的布尔表达式是用于判断变量是否位于某个范围内,
例如,检查一个图形坐标是否位于一个窗口内:
bool PointInRectangelArea (Point p, Rectangle *r)
{
return (p.x >= r->xmin && p.x < r->xmax &&
p.y >= r->ymin && p.y < r->ymax);
}
这里有一种更快的方法:x>min && x<max可以转
换为(unsigned)(x-min)<(max-min)。这对于min等于0时更为有益。
优化后的代码如下:
bool PointInRectangelArea (Point p, Rectangle *r)
{
return ((unsigned) (p.x - r->xmin) < r->xmax &&
(unsigned) (p.y - r->ymin) < r->ymax);
}
|