免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1236 | 回复: 4
打印 上一主题 下一主题

网络通信涉及到的平台问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-31 16:47 |只看该作者 |倒序浏览
int分别在16位、32位和64位平台下的字节大小依次为多少
short分别在16位、32位和64位平台下的字节大小依次为多少
long分别在16位、32位和64位平台下的字节大小依次为多少

如果有编译器的差,麻烦说明.

如果在编写跨平台的网络通信程序,通信包中的成员不能为long类型,因为不能的平台long的大小是不一样的,建议使用字节数组,或用u_int16_t、u_int32_t等明确指定了位数的整数类型来代替。
并具要统一好不同平台通信包数据结构的对齐方式。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-03-31 17:56 |只看该作者

网络通信涉及到的平台问题

这些类型是多少字节是由编译器来决定的。

论坛徽章:
0
3 [报告]
发表于 2004-03-31 18:27 |只看该作者

网络通信涉及到的平台问题

我想
char
unsigned char
两个类型是与平台和编译器无关的,
它总是1个字节长度

论坛徽章:
0
4 [报告]
发表于 2004-03-31 18:32 |只看该作者

网络通信涉及到的平台问题

原帖由 "foryijian" 发表:
我想
char
unsigned char
两个类型是与平台和编译器无关的,
它总是1个字节长度

我觉得未必,java已经改成2字节了,谁能保证C不会改呢?
反正我写程序的时候这么用:
memcpy( destin, source, sizeof( source ) * sizeof( char ) );

论坛徽章:
0
5 [报告]
发表于 2004-04-01 09:21 |只看该作者

网络通信涉及到的平台问题

呵呵,说不定哪天C把char改为4字节,int改为1字节,那才晕菜了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP