免费注册 查看新帖 |

Chinaunix

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

如何在C语音中设置枚举类型长度为1BYTE,而不是默认的4BYTE [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-10 13:44 |只看该作者 |倒序浏览
在unix和nt下都测试了一遍,发现枚举类型都被定义为4BYTE,可是有一单板系统中枚举类型被定义为1BYTE,通讯时因字节无法对齐造成错误,请DX支招,多谢!!

论坛徽章:
0
2 [报告]
发表于 2006-02-10 14:31 |只看该作者
写错了...

[ 本帖最后由 freecutelei 于 2006-2-13 19:58 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2006-02-10 17:08 |只看该作者
不过可以把枚举变量重新定义为char类型变量

论坛徽章:
0
4 [报告]
发表于 2006-02-13 13:07 |只看该作者
短的答案是:
不要这样去做。

长的答案是:
1。可以,但是我不会告诉你。因为你的问题不是这个,请看下面的解释。
2。显然,你是准备在网络通讯中传递数据结构,那么,你应该定义自己的serialize/unserialize函数处理,而不要妄图采用 memcpy(.....) 的方式。memcpy()存在几个问题:不同的平台下,各种数据类型的长度可能不同;不同的平台下,字节顺序可能不同。

论坛徽章:
0
5 [报告]
发表于 2006-02-13 18:46 |只看该作者
# pack (1)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP