はい、タイトルは私が混乱しているのと同じくらい混乱しています。コードは、私が達成しようとしていることを示すのに役立つ場合があります。
関数では、これを渡します。
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
ます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
が異なるはずです。
これはまったく可能ですか?ポインターと参照は、常に私をひどく混乱させます。