我試圖用指針成員將(char *
)轉換成struct
。請告訴我下面兩種類型轉換策略是否有區別。還顯示了struct
。使用指針成員類型化結構
struct videoPacket{
uchar * videoData;
}video;
// and initializing 'video' to some value
策略1:
videoPacket * videoPointer = &video;
char * buffer = (char *)videoPointer;
策略2:
videoPacket * videoPointer = &video;
char * buffer = (char *)videoPointer->videoData;
由於struct
具有單個部件,將所述buffer
沒有指向相同的內容?
編輯:如果我想將下面顯示的結構轉換爲char *,我該怎麼做呢?
struct struct1{
uchar * struct1data1;
char struct1data2;
}video;
您可以將_anything_轉換爲具有未定義行爲的'char *'。 – timrau
如果你停止使用C風格的演員陣容,你會發現第一個演員需要一個'reinterpret_cast'(這通常暗示你在做一些不明智的事情),而第二個演員則使用'static_cast',這不太令人擔憂。 –