size_t

[复制链接]
2611|2
 楼主| bit6019 发表于 2011-1-15 12:45 | 显示全部楼层 |阅读模式
size_t是标准C库中定义的,应为unsigned int。
  数据类型"socklen_t"和int应该具有相同的长度.否则就会破坏 BSD套接字层的填充.POSIX开始的时候用的是size_t, Linus Torvalds(他希望有更多的人,但显然不是很多) 努力向他们解释使用size_t是完全错误的,因为在64位结构中 size_t和int的长度是不一样的,而这个参数(也就是accept函数的第三参数)的长度必须和int一致,因为这是BSD套接字接口标准.最终POSIX的那帮家伙找到了解决的办法,那就是创造了一个新的类型"socklen_t".Linux Torvalds说这是由于他们发现了自己的错误但又不好意思向大家伙儿承认,所以另外创造了一个新的数据类型 。
  在C++中,size_t的引入增加了程序在不同平台上的移植性,经测试发现,在32位系统中size_t是4字节的,而在64位系统中,size_t是8字节的,这样利用该类型可以增加程序移植性。
加班加点 发表于 2011-4-10 07:56 | 显示全部楼层
学习了,顶
msp430ing 发表于 2011-4-10 12:36 | 显示全部楼层
现在都是32位的机子吧!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

221

主题

1344

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部