我正在尝试为我的应用程序构建一个模块表。
/*** MODULE TABLE DEFINTION ***/
struct ModuleInfo
{
char use_module; // 0 = don't use, 1 = use, -1 for end of list
char module_name[64]; // english name of module
int(*module_init)(void); // module initialization callback
void(*module_tick)(void); // module tick callback
void(*module_end)(void); // module end callback
void *config_table; // config table
};
/*** MODULE TABLE ***/
const struct ModuleTable module_table[] = {
{
1, "GPS/NMEA over RS232",
gps_nmea_rs232_init,
gps_nmea_rs232_tick,
gps_nmea_rs232_end,
NULL
},
// end table
{
-1, NULL, NULL, NULL, NULL
}
};
该表存储了一个模块列表,其中包含指向初始化、滴答和终止函数的指针,这些函数将在适当的时间间隔被调用。
我正在使用 MPLAB C30 构建它,它是特定 PIC 微控制器的 GCC 3.23 版本(我认为?)。
但是,当我尝试编译它时,我得到:
In file included from main.c:3:
modules.h:67: error: array type has incomplete element type
如果可能的话,该表应该是 const 的,因为我有很多(编辑:ROM)备用,而没有太多(编辑:RAM)备用。我无法弄清楚为什么这不起作用。