朋友们请教一下,我用ARM芯片,在sram区定义了如下变量: //定义 #define STA_MEM APP_BASE //sram地址区 #define rbStatus(ax)(id) (*(INT8U* )(STA_MEM + 1 + ax * 30 + id * 10)) #define rbSpeed(ax)(id) (*(INT32U*)(STA_MEM + 2 + ax * 30 + id * 10)) #define rbRelPos(ax)(id) (*(INT32U*)(STA_MEM + 6 + ax * 30 + id * 10)) //使用 rbStatus(ax)(id) = 0; rbSpeed(ax)(id) = 0; rbRelPos(ax)(id) = 0; 结果报错: expression must have (pointer-to-) function type 错误指向 rbStatus(ax)(id) = 0; rbSpeed(ax)(id) = 0; rbRelPos(ax)(id) = 0; 这三句。 我始终不明白这是什么情况,我用同样的方法定义一维变量并使用时没问题的,二维就出错了,不知道该怎么办。 其实本质是这样的: typedef struct { INT8U NA; INT8U Status; INT32U Speed; INT32U RelPos; }STA; STA staCtrlBlk[2][3]; 只不过是,我要把它们定义到SRAM地址上。所以用以开头的方法。但用不起来,友友们赐教啊~
|