我正在尝试使用预处理器指令定义数组以具有可变大小。根据#define填充此数组:
#define PORTA (*(PORT_t *) 0x0400)
#define EXP_GPIO0_PORT PORTA
#define EXP_GPIO0_PIN 0
我想用:
填充数组const uint8_t PortAGpiosPortpinUsed[] =
{
#if EXP_GPIO0_PORT == PORTA
EXP_GPIO0_PIN,
#endif
}
由于PORTA是指针,因此编译器(GCC)不允许使用这种预处理程序语法。有什么解决方案可以使其正常工作吗? 谢谢 西尔
答案 0 :(得分:0)
也许这样的事情会起作用:
#ifdef PORTA
#define ADDRESS (*(PORT_t *) 0x0400)
#define EXP_GPIO0_PORT ADDRESS
#define EXP_GPIO0_PIN 0
#endif
const uint8_t PortAGpiosPortpinUsed[] =
{
#ifdef PORTA
EXP_GPIO0_PIN,
#endif
}
当然,这希望先前已定义PORTA