您好、欢迎来到现金彩票网!
当前位置:在线斗牛棋牌游戏 > 位段 >

C位段(bitfield)问题?

发布时间:2019-07-10 06:50 来源:未知 编辑:admin

  C语言学得不是很好,请教一下关于位段的问题,哪位达人能够解释或介绍一下下面的代码为什么结果会是-1(已在mingw和vc测试过)。intmain(intargc,char**argv){union{struct{chara:1;cha...

  C语言学得不是很好,请教一下关于位段的问题,哪位达人能够解释或介绍一下下面的代码为什么结果会是-1(已在mingw和vc测试过)。

  d和e共享空间,e赋值为1,a,b,c都应该为0。为什么结果是-1呢展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部首先位是从c开始分配的,所以c=000,b=00,a=1;其次把a打印的时候会把a扩展,扩展成int的,而扩展的规则是所有其他位填当前最高位,也就是1,而

  11111111正是-1(补码),如果用f.e = 2;a为0,而b为1,因为b的最高位是0,补齐的结果就是1

http://missartypants.com/weiduan/314.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有