是的,标题和我一样令人困惑。该代码可能有助于显示我想要实现的目标;
在一个函数中,我通过这个;
RESTOUCH_POINT_STRUCT stConvertPoint;
stConvertPoint.usX = astLCDPoints[0].usX;
stConvertPoint.usY = astLCDPoints[0].usY;
Driver_Control((DRIVER_STRUCT*)pstResTouch->pstDisplay, CMD_CONVERT_POINT_TO_ORIENTATION, &stConvertPoint);
接收驱动函数,需要将 的地址stConvertPoint
作为 void 指针接受,然后对其进行强制转换以获取指向其成员的指针usX
, 和usY
。然后将其传递给一个内部函数,该函数会更改usX
and的值usY
。
DRIVER_RETURN ILI9328_Control(DRIVER_STRUCT *pstDriver_, USHORT usID_, void *pvData_)
{
...
case CMD_CONVERT_POINT_TO_ORIENTATION:
{
DRAW_POINT_STRUCT* pstPoint = (DRAW_POINT_STRUCT*)pvData_;
USHORT *pusX;
USHORT *pusY;
pusX = (USHORT*)pstPoint->usX;
pusY = (USHORT*)pstPoint->usY;
ILI9328_ConvertPointOrientation(pstDriver_, pusX, pusY);
}
break;
假设这一切正常,调用函数中stConvertPoint.usX
和的值stConvertPoint.usY
现在应该不同。
这是可能吗?指针和引用总是让我非常困惑。