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

砍柴君 2013-03-18 11:00:08
有段代码不知道是要干嘛,通过一个结构体的指针指向一个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函数接收到的一个字符串
...全文
177 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
砍柴君 2013-03-18
  • 打赏
  • 举报
回复
懂了 多谢各位
  • 打赏
  • 举报
回复
这应该是网络编程中,定义的数据包吧 这样把char* 强制转换成 FS_PACKET* 说明 char* 所指向的内容,是按照FS_PACKET指定的格式和序列放好了的。 强制转换后,FS_PACKET中的数据成员就一一对应char* 所指内容的数据。 当访问FS_PACKET 的成员变量时候,就访问到char* 内容中对应的数据了。
砍柴君 2013-03-18
  • 打赏
  • 举报
回复
能不能举几个例子 让我好理解下 谢谢了
_sunshine 2013-03-18
  • 打赏
  • 举报
回复
引用 1 楼 starytx 的回复:
数据类型是人为制定的一种区别字节序列的东西,对于计算机来说,所有东西不都是01字节序列吗?因为char一般是1个字节,在网络传输中一般都是把要传输的数据(典型的如结构体)转化为char*或无符号char*,接收后再强制转化为具体类型的指针,就可以访问具体类型的数据结构成员了
++
starytx 2013-03-18
  • 打赏
  • 举报
回复
数据类型是人为制定的一种区别字节序列的东西,对于计算机来说,所有东西不都是01字节序列吗?因为char一般是1个字节,在网络传输中一般都是把要传输的数据(典型的如结构体)转化为char*或无符号char*,接收后再强制转化为具体类型的指针,就可以访问具体类型的数据结构成员了

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧