愿你出走半生,归来仍是少年

^_^

怀揣梦想,永不放弃

导航

编程小技巧——对传入参数的检查

头文件定义部分:

#define HAL_LED_1 0x01
#define HAL_LED_2 0x02
#define HAL_LED_3 0x04
#define HAL_LED_4 0x08
#define HAL_LED_ALL (HAL_LED_1 | HAL_LED_2 | HAL_LED_3 | HAL_LED_4 )

 //add later: 回过头来看这里的宏定义也是有技巧的,为什么每一个位置1代表一个灯,这为后面的方面做了铺垫。

在函数调用时传入参数:

HalLedSet (HAL_LED_1, HAL_LED_MODE_ON);  //这里还可以传入多个参数

例如:要使LED1和LED2同时点亮,那么在这里就可以传入两个参数,即HAL_LED_1和HAL_LED_2,如下:

HalLedSet (HAL_LED_1 ^ HAL_LED_2, HAL_LED_MODE_ON);

Tips:这也是一个技巧,用宏定义使传入参数更加灵活多变 

 

在函数实现时检查参数:

uint8 HalLedSet (uint8 leds, uint8 mode)

{

  ......

  led = HAL_LED_1;

  leds &= HAL_LED_ALL;  //这里可以达到检查参数的目的。这里还可以

  ......

  while(leds)

  {

    ......

    leds ^= led;   //返回未处理的事件,即在while循环中检测哪个灯还没有点亮。每次循环leds中处理的灯的位置0

    led <<= 1;  

  }

}

 

--------------------------------------------------------------------------------------------------------------------------------------

在这样一小段代码里就有这么多有趣的知识。在以后的编程中尽量使用这些技巧,这对程序的健壮性有很重要的作用。

 

posted on 2015-08-21 09:28  Jeffrey.Downhouse  阅读(387)  评论(0编辑  收藏  举报

运筹帷幄之中 | 决胜千里之外