首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

VC++ 里面的一道C语言有关问题

2012-09-11 
VC++ 里面的一道C语言问题如题, 小弟想理解一下结构体中的位的操作,想知道,在一个整型的变量中,a b c 的分

VC++ 里面的一道C语言问题
如题, 小弟想理解一下结构体中的位的操作,想知道,在一个整型的变量中,a b c 的分布,以及其他位的情况,还有想知道是不是第一个变量a:3的地址是不是ND的首地址, a b c 是不是在内存中连续分布的,地址相差是不是3位,以及,在当前首地址起后八位的数据是不是a b c 的内存值左移一位? 

通过vc++6.0打印出来的结果,发现,和期望值相差很大..求前辈指教!!

#include <stdio.h>
#include <string.h>

typedef struct node
{
unsigned int a:3;
unsigned int b:3;
unsigned int c:3;
} ND;

int main(void)
{  
ND Myval;

printf("%d\n",sizeof(short));
memset(&Myval, 0 , sizeof(ND));

  printf("%x %x %x\n",&Myval,&Myval +3,&Myval +2);

printf("%d %d %d %d \n",Myval.a,Myval.b,Myval.c,*(unsigned int*)(&Myval));
Myval.a = 6;
Myval.b = 6;
Myval.c = 2;
  printf("%d %d %d %d \n",Myval.a,Myval.b,Myval.c,*(unsigned int*)(&Myval));

printf("%d\n",*(((unsigned char*)(&Myval))-1));
return 0;
}

2
12ff7c 12ff88 12ff84
0 0 0 0
6 6 2 182
204
Press any key to continue

[解决办法]
推荐楼主看看http://www.rosoo.net/a/201006/9581.html

热点排行