请教大家个问题.关于位赋值的问题,谢谢了
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 是什么意思啊?;
----------------解决方案--------------------------------------------------------
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位末尾开始,还是以新字节从新开始啊?
谢谢了。
----------------解决方案--------------------------------------------------------