在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