示例1: 带参宏定义及三目运算实例
带参宏定义 就是带参数的宏定义, 类似函数。
三目运算 : A?B:C 即: A为真, 则输出B, 为假则输出C。
//n=1输出高电平
#define CON1_1_PC12(n) (n?HAL_GPIO_WritePin(GPIOC,GPIO_PIN_12,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOC,GPIO_PIN_12,GPIO_PIN_RESET))
#ifdef CON1_USE_OUTPIN
#define CON1_1_ON CON1_1_PC12(1)
#define CON1_1_OFF CON1_1_PC12(0)
#endif
使用n来选择 , 非常方便的进行管脚设置,而且代码也好看,可读性高。
示例2: 巧用return实现斐波那契数列递归
/*由三目运算可知*/
return i ==0?0:1; //等价于
if(i==0)
{
return 0;
}else
{
return 1;
}
因此:
int fbi(int i)
{
if(i<2)
return i ==0?0:1;
return fbi(i-1)+fbi(i-2);
}
int main()
{
int i ;
for(i=0;i<40;i++)
printf("%d",fbi(i));
retunr 0;
}