您的位置:首页 > 其它

分支判断选择的另外一种方式(类似switch case和if elseif),使用正则表达式定义的宏函数

2015-05-09 16:16 453 查看
在stm32头文件<RET_Device.h>无意中看到的,觉得是一种不错的方法。

#define GPIO_PORT(num) \

 ((num == 0) ? GPIOA : \

  (num == 1) ? GPIOB : \

  (num == 2) ? GPIOC : \

  (num == 3) ? GPIOD : \

  (num == 4) ? GPIOE : \

  (num == 5) ? GPIOF : \

  (num == 6) ? GPIOG : \

  NULL)




举例:

#include <stdio.h>

char num;

#define CHAR_SELECT(n) \

((n==0) ? (num='a') :    \

 (n==1) ? (num='b') :    \

 (n==2) ? (num='c') :    \

          (num='?')      \

)

int main()

{

  CHAR_SELECT(2);

  printf("%c\n",num);

  return 0;

}


运行结果: c


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则表达式 stm32
相关文章推荐