1
wevsty 2018-07-05 18:48:48 +08:00
#define UART(N) LPC_UART##N
这样就行了。 你使用 UART(1)的时候编译器会自动帮你替换成 LPC_UART1。 |
2
CannotGoogle 2018-07-05 19:00:44 +08:00
宏的作用只能到在预处理阶段,可能数组会比较方便:
static lpc_uart[] = {LPC_UART0, LPC_UART1, LPC_UART2, ...}; lpc_uart[port] = xxx; |
3
CannotGoogle 2018-07-05 19:01:48 +08:00
写错,static 后面忘加类型了。
|
4
eltonto187 OP @CannotGoogle 文中有提到,每个 LPC_UART 的类型不同,数组已试过,无效
|
5
eltonto187 OP @wevsty 回去试下,如果好好使,就太感谢了
|
6
changnet 2018-07-05 19:38:06 +08:00 via Android
一定要用宏的话,wevsty 正解。但是这样逻辑不应该是用数组来解决的么,即使类型不一样,换种思路,用 union 什么的也可以处理。你用宏相当于硬编码。
如果是老代码定的规则,当我没说 |
7
duzhe0 2018-07-05 19:39:03 +08:00
C 的宏是没有循环的
|