我正在尝试使用预处理程序指令定义一个具有可变大小的数组。根据#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)不允许这种预处理器语法。是否有任何解决方案让它工作?谢谢Syl
也许这样的事情会起作用:
#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
是先前定义的