#include "stdio.h"
#include "stdlib.h"
int main()
{
struct bit
{
int a:3;
int b:2;
int c:3;
}s;
char *d = (char*)&s;
*d = 0x99;
printf("\ns.a=%d, s.b=%d, s.c=%d\n",s.a,s.b,s.c);
return 0;
}
#include "stdlib.h"
int main()
{
struct bit
{
int a:3;
int b:2;
int c:3;
}s;
char *d = (char*)&s;
*d = 0x99;
printf("\ns.a=%d, s.b=%d, s.c=%d\n",s.a,s.b,s.c);
return 0;
}
解决方案 »
- 水晶报表能根据数据变化实现动态显示图表吗?
- MFC布局问题
- 在函数内部定义的 static 变量 编译后是存在 数据段 还是代码段啊?
- 请帮我解释一下以下程序的意思,谢谢,要散分的哦
- 关于循环显示的问题:
- 怎样使listview显示时有网格?
- 如何在空表中添加记录?没分了,帮帮忙,3x。问题提了好几天,没人回答,高手很看中csdn上的分吗?我不是小气鬼,实在没办法,可用分为0
- 请教winCE下使用activeX控件问题
- DLL __STDCAL __CDECL问题
- 如何做一个类似于WINDOWS资源管理器的窗口?用单文档还是多文档
- 创建有数据库支持项目时,为什么我的DAO不能用(在 appwizard 向导中)?
- 请问我怎样才能查到一份完整的大学里的重点实验室的列表
d指向了s*d = 0x99;
修改d指向的内容,结果当然要改变了,至于具体的值,稍微分析一下就知道了,struct是连续存储的
变了d的值,s一定要变吗???具体结果和“struct是连续存储的”有关系吗???
请赐教!
d指向了s*d = 0x99;就相当于 s=0x99;
所以s也改变了,结果当然便了
3-4 bits is b:
5-7 bits is c: