Windows SDK содержит набор typedefs:
typedef long LONG;
typedef struct tagPOINT
{
LONG x;
LONG y;
} POINT;
typedef struct tagRECT
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
, затем есть функция WinAPI, которая ожидает указатель на массив POINT
структур и длину этого массива:
void ThatFunction( POINT* points, int numberOfElements );
и у нас есть следующий код:
RECT rect = ...//obtained from somewhere
ThatFunction( reinterpret_cast<POINT*>( &rect ), 2 );
, так что RECT
рассматривается как массив из двух POINT
структур.
Безопасно ли такое приведение?