社区
C语言
帖子详情
请教这个联合体和结构体的结果是什么以及原因?
presadio
2005-05-17 06:03:57
union
{
struct
{
unsign s1:2
unsign s2:3
unsign s3:3
}s;
unsign char c;
}v;
v.c=200;
请问v.s.s3=?和原因。谢谢!
...全文
78
7
打赏
收藏
请教这个联合体和结构体的结果是什么以及原因?
union { struct { unsign s1:2 unsign s2:3 unsign s3:3 }s; unsign char c; }v; v.c=200; 请问v.s.s3=?和原因。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
du51
2005-05-17
打赏
举报
回复
从左或是从右.不是一定的.因机器而异.
一般是从低向高.但是不一定.
yuanyou
2005-05-17
打赏
举报
回复
SaiRose(Learning......)
说的差不多了
200的2进制是 110 01 000 c
S.s3 S.s2 S.s1
astrophor
2005-05-17
打赏
举报
回复
#include <iostream.h>
union
{
struct S
{
unsigned int s1:2;
unsigned int s2:3;
unsigned int s3:3;
}s;
unsigned char c;
}v;
int main()
{
v.c=200;
cout<<v.s.s3<<endl;
return 0;
}
astrophor
2005-05-17
打赏
举报
回复
弄错了
应该是前3个,v.s.s3=6
这个和它在内存中的放的有关
astrophor
2005-05-17
打赏
举报
回复
首先要理解联合的定义
200的2进制是11001000
unsign s1:2这表示s1占2个bit,而一个char是8bit
2+3+3=8
s3就应该是这8个bit的最后3个,也就是000
故v.s.s3=0
lucymary1982
2005-05-17
打赏
举报
回复
不好意思,说错了,应该是不可预测,
因为,用到了unsigned char c,这意味着strcut妹分配内存阿
lucymary1982
2005-05-17
打赏
举报
回复
那要看v的类型了,如果是全局或静态则为0,否则不可预料
深入理解C语言指针和
结构体
本课程的主要目的是通过介绍C语言的指针、指针变量、静态内存分配、动态内存分配以及
结构体
等知识,实现C语言到Java以及Python编程的一个完美过渡.
结构体
字节对齐
结构体
字节对齐
更改
结构体
的内存字节对齐方式--经典
结构体
字节对齐 http://blog.163.com/ecy_fu/blog/static/4445126200910603739941/ http://hi.baidu.com/skyland_lee/blog/item/45604bca81e1928cc91768d7.html,这篇文章比较专业地分析了字节对齐...
c语言数据高低位与地址关系,
请教
一个数据存储的高低地址问题
问题二:共用体(
联合体
)中,如本例中 union { unsigned char strName[3]; unsigned long IPlayerId; unsigned short sGroupId; }; m.IPlayerId=0x002233ff; 给long int 的IPlayerId赋值后,sGroupId取他的低位?? 问题...
C/C++ 笔试题
...1.进程和线程的差别。...线程是指进程内的一个执行单元,也是进程内的可调度实体. ...(1)调度:线程作为调度和分配的基本单位,...(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行 (3
C语言
69,380
社区成员
243,074
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章