说说一下浮点数操作和回调函数

  (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();     //这里执行对应的入口函数

  }

posted @ 2022-06-23 17:58  田大叔  阅读(50)  评论(0编辑  收藏  举报