【发布时间】:2021-05-14 15:24:06
【问题描述】:
我必须编写一个宏,它连接一个带有 GPIO 的数字变量。 例如:
#define SELECT_PIN(pin) GPIO##pin
int main (void)
{
uint16_t x=5;
ioregister.SELECT_PIN(x)= OUTPUT;
}
这个宏自然会输出"this structure has no element like GPIOx"这样的结果。
我需要你们的帮助。
【问题讨论】:
-
您不能为此使用宏。
x是在运行时更改的变量,宏在编译时扩展。您要么需要将x也设为宏,要么使用运行时函数将整数转换为字符串并连接字符串。 -
@SergeyA 好的先生,我忘了宏在编译时执行。
标签: c concatenation