这段代码输出很奇怪,不知道为什么?该如何处理
这段代码输出很奇怪,不知道为什么?
typedef struct _DCB
{
int f:8;
int k:1;
}DCB;
int main()
{
DCB a;
a.f=8;
cout < <a.f < <endl;
cout < <a.f < <endl < <a.k < <endl < < "End of Function! " < <endl;
return 0;
}
//最后输出的数字很奇怪,不是看上去的数,在VC跟DEV中不一样
------解决方案--------------------
有什么不一样呢?
------解决方案--------------------
VC 好像有自定义的 使用内存 初始化过程
------解决方案--------------------
只使用int(系统给定32位)的9位或者7位
------解决方案--------------------
typedef struct _DCB
{
int f:9;
int k:7;
}DCB; //表示结构DCB只占用 (16 = (9 + 7)) 个比特位,这是C语言的一种用法
typedef struct _DCB
{
int f:8;
int k:1;
}DCB;
int main()
{
DCB a;
a.f=8;
cout < <a.f < <endl;
cout < <a.f < <endl < <a.k < <endl < < "End of Function! " < <endl;
return 0;
}
//最后输出的数字很奇怪,不是看上去的数,在VC跟DEV中不一样
------解决方案--------------------
有什么不一样呢?
------解决方案--------------------
VC 好像有自定义的 使用内存 初始化过程
------解决方案--------------------
只使用int(系统给定32位)的9位或者7位
------解决方案--------------------
typedef struct _DCB
{
int f:9;
int k:7;
}DCB; //表示结构DCB只占用 (16 = (9 + 7)) 个比特位,这是C语言的一种用法