有段代码不知道是要干嘛,经过一个结构体的指针指向一个char *类型的 不知道是用来干嘛用

有段代码不知道是要干嘛,通过一个结构体的指针指向一个char *类型的 不知道是用来干嘛用
有段代码不知道是要干嘛,通过一个结构体的指针指向一个char *类型的 不知道是用来干嘛用
struct FS_PACKET
{
FS_PACKET() : wHeader(0xFFFF), nSize(0), nID(0xFFFFFFFF)
{

}

WORD wHeader;
DWORD nSize;
DWORD nID;
};

void main(void)
{
char *s="abcdefghijklmn";
FS_PACKET* pPacket = NULL;
pPacket = (FS_PACKET*)s;
cout<<pPacket->nID<<endl;
cout<<pPacket->nSize<<endl;
cout<<pPacket->wHeader<<endl;
}
代码相当于上面这段代码,请问pPacket指针指向char* 类型是有什么用,它的成员变量wHeader;nSize;nID又代表什么,因为原来代码有点长 所以我只用其中主要的部分写成上面的代码,应该不会影响理解,其中char* s相当于是通过socket recv函数接收到的一个字符串
struct 指针 char* 网络编程

------解决方案--------------------
数据类型是人为制定的一种区别字节序列的东西,对于计算机来说,所有东西不都是01字节序列吗?因为char一般是1个字节,在网络传输中一般都是把要传输的数据(典型的如结构体)转化为char*或无符号char*,接收后再强制转化为具体类型的指针,就可以访问具体类型的数据结构成员了
------解决方案--------------------
引用:
数据类型是人为制定的一种区别字节序列的东西,对于计算机来说,所有东西不都是01字节序列吗?因为char一般是1个字节,在网络传输中一般都是把要传输的数据(典型的如结构体)转化为char*或无符号char*,接收后再强制转化为具体类型的指针,就可以访问具体类型的数据结构成员了

++
------解决方案--------------------
这应该是网络编程中,定义的数据包吧

这样把char* 强制转换成 FS_PACKET*
说明 char* 所指向的内容,是按照FS_PACKET指定的格式和序列放好了的。

强制转换后,FS_PACKET中的数据成员就一一对应char* 所指内容的数据。

当访问FS_PACKET 的成员变量时候,就访问到char* 内容中对应的数据了。