LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1004|回复: 5

如何定义一个4位的数据类型

[复制链接]
发表于 2004-11-17 16:37:15 | 显示全部楼层 |阅读模式
用来分析网络数据报的,需要半个整形的东东。
只知道在结构体中用可以定义位,但是用起来不方便,需要一个类似于glib中guint8那样的类型。但是不想依赖glib。
我已经在include下grep guint8,却找不到他是如何定义的,为什么?
发表于 2004-11-17 20:08:24 | 显示全部楼层
半个整形?所谓的整形是指什么类型?short? long? 还是long long?
有符号的?无符号的?
呵呵,最基本的概念往往是最难说清楚的!
发表于 2004-11-17 22:53:37 | 显示全部楼层
不要用位域。那样的代码是不可移植的。
发表于 2004-11-18 08:36:29 | 显示全部楼层
在网络数据包的数据格式定义中使用位域是常见的做法,但要注意硬件平台和编译器的约束。

guint8怎么会是4位呢?!!  它的定义是
typedef unsigned char guint8;
发表于 2004-11-18 10:48:58 | 显示全部楼层
位域是可以用的,但要注意统一字节顺序。
 楼主| 发表于 2004-11-18 14:56:04 | 显示全部楼层
多谢了,知道怎么玩了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表