我试图用指针成员将(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',这不太令人担忧。 –