当前位置: 代码迷 >> C语言 >> 请教大家个问题.关于位赋值的问题,谢谢了
  详细解决方案

请教大家个问题.关于位赋值的问题,谢谢了

热度:162   发布时间:2007-08-30 21:05:31.0
请教大家个问题.关于位赋值的问题,谢谢了

typedef struct Data_s
{
unsigned int ulData1:2;
unsigned int ulData2:12;
unsigned int :2;

}Data_s;

int main()
{
Data_s stData;
unsigned int *pData;
memset((void*)&stData,0,sizeof(Data_s));
stData.ulData1=0x7;
stData.ulData2=0x010;
pData=(unsigned int *)&stData;
printf("0x%x\n",*pData);
}

输出结果是0X43,可是我怎么也得不到,请问什么原因啊。
还有 unsigned int :2 是什么意思啊?;

搜索更多相关的解决方案: 赋值  int  unsigned  stData  

----------------解决方案--------------------------------------------------------
unsigned int :2;
丢弃不用
这明显又是TC上写的代码,int 16位

LZ你自己用的什么编译器?



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
----------------解决方案--------------------------------------------------------
回复:(雨中飞燕)unsigned int :2;丢弃不用这明显又...

第一个赋值应该使第一个字节为3,对第二个12位赋值,应该怎么赋值啊,

系统四字节对齐。

12位是以2位末尾开始,还是以新字节从新开始啊?


谢谢了。


----------------解决方案--------------------------------------------------------
  相关解决方案