不同参数类型及个数的函数指针,是否能正常调用

2019-12-24 18:38发布

最近在处理一个图形接口,由于需要双buffer,所以需要保存当前函数指针,等场同步切换后,调用函数指针和它的参数进行绘图
底层图形驱动,参数个数都不一样,而且类型不一样;现在是编译器不报错,特殊处理了一个有浮点作形参的函数,中间经过局部变量转换下填入浮点参数位置,使用通用的函数指针模版执行的时候,浮点及以后的参数全部都是错误的
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
qingyin2009
2019-12-25 02:51
本帖最后由 qingyin2009 于 2017-8-31 08:55 编辑
大傻师 发表于 2017-8-30 23:37
用变参函数感觉好一些

typedef void (*FuncLcdCmTyp)(uint32 data, ...);
float32 draw_angle;


if (now_fifo_tab->lcd_draw_type == TYPE_NEEDLE_FILL)
{
       draw_angle = now_fifo_tab->data2 * 0.1;
       vGfLayerRotateNeedleFill((gf_image_st * )now_fifo_tab->data1, draw_angle, (gf_layer_st *)now_fifo_tab->data3, now_fifo_tab->data4, now_fifo_tab->data5, now_fifo_tab->data6);      
}
else
{
       now_fifo_tab->lcd_cm_func(now_fifo_tab->data1, now_fifo_tab->data2, now_fifo_tab->data3, now_fifo_tab->data4, now_fifo_tab->data5, now_fifo_tab->data6);
}        

一周热门 更多>