使用 typedef 函数指针时,类型 'interrupt' 属性仅适用于函数 [-Wattributes]

Type 'interrupt' attribute only applies to functions [-Wattributes] when using typedef function pointer

我有下面一行代码:

typedef void(* foo)(void) __attribute__ ((interrupt));

当使用 LPCXpresso 编译项目时,我收到编译器警告:

Type 'interrupt' attribute only applies to functions [-Wattributes]

谁能告诉我如何修复此警告?

GCC 对谁的属性有点挑剔。只需将它显式应用于函数类型,而不是应用于 typedef 声明本身:

typedef void(* __attribute__ ((interrupt)) foo)(void);

我刚刚在 ARM 编译器上测试了这个。