首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用结构数组调用函数?

如何使用结构数组调用函数?
EN

Stack Overflow用户
提问于 2016-01-17 00:17:45
回答 2查看 85关注 0票数 1

我有下面的LCD驱动程序代码,我不知道如何调用这个函数

代码语言:javascript
运行
复制
typedef struct  {
  int16_t X;
  int16_t Y;
} Point, * pPoint;

void LCD_PolyLine(pPoint Points, uint16_t PointCount) {
  int16_t X = 0, Y = 0;
  while(--PointCount) {
    X = Points->X;
    Y = Points->Y;
    Points++;
    LCD_DrawUniLine(X, Y, Points->X, Points->Y);
  }
}

函数的第一个参数是"pPoint点“,这是没有意义的。在我看来,应该是"pPoint *Point“。然后,我可以创建一个pPoints数组并将这个地址传递给它。

否则,您将如何调用此驱动程序功能而不修改它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-17 00:21:33

函数的第一个参数是pPoint Points是没有意义的。

这实际上非常合理,因为pPoint被定义为Point*,即指向Point的指针。它相当于

代码语言:javascript
运行
复制
void LCD_PolyLine(Point *Points, uint16_t PointCount)

这是正确的签名。您所需要做的就是传递一个struct Point数组,然后是其中的元素计数。

票数 1
EN

Stack Overflow用户

发布于 2016-01-17 00:26:28

Point结构定义的最后一行中,逗号后面是* pPoint。这是将类型pPoint定义为Point *的符号。注意,pPoint上的"p“是指针类型的常用表示法。所以,您是对的,您通常只需创建一个Point结构数组,并将指针传递给函数。(请注意不要传递指针的地址,这将是一个Point **。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34833670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档