最近进行GUI的移植,但是给的函数里面有一些限制,譬如GUI_ClearRect(x0,y0,x1,y1);函数清除一个矩形区域,但是GUI使用手册上有限制,说是矩形的终点X1,Y1坐标都必须大于起点X0,Y0的坐标值,否则无法绘出该矩形,试验之后确实不可以,F12了之后,发现在
void LCD_FillRect(int x0, int y0, int x1, int y1) { /* Perform clipping and check if there is something to do */
CLIP_X();
if (x1<x0)
return;
CLIP_Y();
if (y1<y0)
return;
/* Call driver to draw */
LCDDEV_L0_FillRect(x0,y0,x1,y1);
}
函数中对x0,x1的值进行了判断,如果不满足条件就直接退出,这里我想修改一下,修改成自己的代码
但是为了又不想在他的代码上直接修改,就想新建一个.C文件,在这个.C文件里面重新定义这些函数,名字仍用成一样的,就相当于C语言中的预处理标识符#undef,
如果以前定义过这个函数,就把这个函数的定义取消掉,同时再定义一遍,但是编辑器又不会报错,说重复定义
譬如预处理命令一样:
#define A a //定义过这个函数
#undef A //把这个函数的定义取消掉
#define A //再定义一遍
仿照上面的,不知道对于一个函数的定义可不可以这样……探讨一下,欢迎拍砖,呵呵
|