首页
社区
课程
招聘
[求助]求租msdn上的两点疑惑
发表于: 2014-10-25 14:55 3373

[求助]求租msdn上的两点疑惑

2014-10-25 14:55
3373
请教各位2个问题, 知道答案的请说一下:

(1)今天留意到,msdn上对 send/recv函数的第二个参数是 char*, 我个人觉得这不合理。因为发送到不一定是字串,只是字节流而已。应该和glibc里定义的一样,用 void*。请教各位怎么理解。

(2)msdn上结构体IP_ADAPTER_INFO的两个成员:
  char                    AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
  char                    Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
为什么后面都+4, char类型的,应该+1 就足够存储,这是什么原因?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
2
第1个问题,个人认为很简单,在windows下很多库函数的指针都是char *形式,因为c++中默认是没有byte类型的,所以用char当做byte。

第2个问题,纯属猜测:为了在字符串前+上"\\?\"?
2014-10-25 15:04
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
soh
3
标准库函数是没有BYTE类型,但是可以考虑用void*,看到char * 我觉得容易误导,以为是字串。
2014-10-25 15:13
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
4
可能是因为一般在这个函数中还有个参数是字节数组的大小的吧。
如果该函数是void *的话,传递一些自定义的结构数组的话,可能会让人不知道该传入结构数组的大小,还是结构的个数吧。
2014-10-25 15:22
0
游客
登录 | 注册 方可回帖
返回
//