关于union中位域的问题

wisemanboy 2006-10-23 04:14:49
typedef union _Entry_t{
struct{
unsigned int Offset : 28;
unsigned int Type : 4;
};
unsigned int UEntry;
}Entry_t;

(注:这里unsigned int是占四个字节的)
这个union中是不是 28指Offset占28个bit,4指Type占4个bit.
那么struct{
uint32_t Offset : 28;
uint32_t Type : 4;
};
占四个字节,如果是的话为什么要用unsigned int来定义,大侠指教
...全文
336 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weijiangshanwww 2006-10-23
  • 打赏
  • 举报
回复
28位的便移量
===============

偏移量
weijiangshanwww 2006-10-23
  • 打赏
  • 举报
回复
struct{
unsigned int Offset : 28;
unsigned int Type : 4;
};
=========================
LZ要开发语言么?
这里定用UNSIGNED定义的原因:
1该变量的取值都为正。没有负的情况。(有利于程序的健壮性)
2这里的28 和4 是代表位数。
即:28位的便移量

这里是用C实现比较底层的东西了。
ckt 2006-10-23
  • 打赏
  • 举报
回复
你看的书这么定义不代表只能这么定义,
自己有疑问的地方可以改动下,运行看看.
就知道答案哪
goodluckyxl 2006-10-23
  • 打赏
  • 举报
回复
long 也可以需要而已
大家都是int定义放到一起数据大小也好检测优化
看起来也整齐
飞哥 2006-10-23
  • 打赏
  • 举报
回复
不是字节
就是一个整型的值为28,为4
飞哥 2006-10-23
  • 打赏
  • 举报
回复
初始化~

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧