一个烧脑的strcmp字符串比较问题

2019-12-11 18:20发布

MDK编译器.

有这么一个函数,是正常工作的,我把多余的参数去掉了。为了方便大家看明白。

GUI_DispStringHCenterAt((pPara->pBitmapItem + pPara->pItemInfo[pPara->NumItems - 1].Index)->pExplanation);
它就是显示一个字符串而已,是正常工作的。

然后我想用strcmp比较这个字符串,如下。
if(0 == strcmp((pPara->pBitmapItem + pPara->pItemInfo[pPara->NumItems - 1].Index)->pExplanation,"ABC"))
编译出错。
-------------------------------------------------------------------
pPara是一个结构体,如下:
typedef struct {
  int                 NumItems;
  const BITMAP_ITEM * pBitmapItem;
  ITEM_INFO         * pItemInfo;
} PARA;

PARA      * pPara;
-------------------------------------------------
里面的pBitmapItemt和pItemInfo也是一个结构体。

typedef struct {
  const GUI_BITMAP * pBitmap;
  const char       * pExplanation;
} BITMAP_ITEM;

typedef struct {
  int Index;
} ITEM_INFO;

而且pPara->pItemInfo[pPara->NumItems - 1]这里看上去它还是个数组。。

----------------------------------------------------
请教用strcmp怎么解决这个问题?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。