请教有关位段的一个问题

hiairfly 2003-08-31 09:45:35
#include <iostream.h>
enum ALPHA{a,b,c,d};
class SWITCH //总数23位,紧凑方式编SWITCH大小为4个字节
{
int power:3;
int water:5;
int oil:6;
int alarm:5;
int manual:4;
};
union STATE //总数9位,紧凑方式编STATE大小为2个字节
{
int start:1;
int speed:5;
ALPHA stop:1;
unsigned run:2;
};
void main(void)
{
cout << "The size of int is " << sizeof(int) << " bytes\n";
cout << "The size of SWITH is " << sizeof(SWITCH) << " bytes\n";
cout << "The size of STATE is " << sizeof(STATE) << " bytes\n";
}

答案是2 3 2, 为什么? 是怎么计算的呢?
...全文
28 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jinhao 2003-08-31
  • 打赏
  • 举报
回复
首先确定一点,你的编译器是把int看成两个字节
8个位为一个字节
class SWITCH 的大小是23个位,最后补一个位凑足3个字节
union STATE 是9个位,补足7个位凑成2个字节
zhukeke 2003-08-31
  • 打赏
  • 举报
回复
int power:3 的意思是:变量“power”只占3个二进制位。
hiairfly 2003-08-31
  • 打赏
  • 举报
回复
int power:3; 这个怎么解啊?(从没见过,是什么意思啊?) 请再指点!
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。“微信小程序系统教程[阶段]全套课程”包含:1.微信小程序系统教程[阶段]_客服消息2.微信小程序系统教程[阶段]_微信支付3.微信小程序系统教程[阶段]_九宝电商系统学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源程序。九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。“微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。购课请咨询qq2326321088

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧