说说一下浮点数操作和回调函数
(1)
由于最近要做个计算器,就涉及到浮点数的操作。但由于很久没有用,有点生疏了!因为是要对浮点数为零的判断,这边就记录下来一下:
网上有说判断一个浮点数是否为零,是这样来处理的:
float f1=0.000001;
if(fabs(f1) <= 1e-6)
{
cout<<"the f1 is zero!"<<endl;
}
但是再计算器中要判断真的为零的话,这样是不行的,得使用上fabs,使用如下:
if(fabs(f1)<=1e-6 && fabs(f1)==0)
{
if (fabs(ret) <= CAL_ZERO && fabs(ret) != 0)
}
(2)
指定某个页面的入口函数,怕时候可以使用回调函数,定义如下的结构体:
typedef struct
{
uint16_t screenid;
void (*entry)();
} my_mainmenu_screen_t;
const my_mainmenu_screen_t g_my_mainmenu[7] =
{
{MY_MAINMENU_TELEPHONE, mmi_entry_my_telephone_view},
{MY_MAINMENU_MESSAGE, my_page_message},
{MY_MAINMENU_CONTACT, my_page_contact},
{MY_MAINMENU_CALL_RECORD, my_page_callrecord},
{MY_MAINMENU_FITNESS_DATA, my_page_fitnessdata},
{MY_MAINMENU_SPORT_MODE, my_page_sportmode},
{MY_MAINMENU_HEART_RATE, my_page_heartrate}
};
这样的话,当我们点击屏幕上的某个图片或者按钮,直接调用如下:
if(g_my_mainmenu[i].entry!=NULL) //先判断入口是否为零
{
g_my_mainmenu[i].entry(); //这里执行对应的入口函数
}