一个烧脑的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怎么解决这个问题?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
yerrmin
1楼-- · 2019-12-11 23:56
对那一坨强制类型转换成char*
hyghyg1234
2楼-- · 2019-12-12 00:32
加上(char *)强制转换。
CoolBird007
3楼-- · 2019-12-12 06:10
2,3楼对的。。被这么长的结构吓糊涂了。

一周热门 更多>