我有以下的LCD驅動器的代碼,而且我不確定如何調用該函數如何用結構數組調用函數?
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 * Points」。然後我可以創建一個pPoints數組並將此地址傳遞給它。
你還會怎麼稱呼這個驅動功能而不修改它?
在這種情況下,'pPoint'指向'Point'的指針(在技術上,指向'struct {...} '),所以你應該創建一個'Point'數組。 – slugonamission
如這個問題所示,鍵入一個指針通常是一個糟糕的主意。我將在typedef的末尾刪除',* pPoint',並將函數聲明爲void void_P_PolLine(Point * Points,...' – user3386109