关于sizeof的有关问题 能返回 0.5 吗

关于sizeof的问题 能返回 0.5 吗
本帖最后由 plklklklkl 于 2014-04-02 11:01:01 编辑
一个数据帧 中 帧类型是用 4bit表示的 所以我这样定义
  enum PD_TYPE_
{
PD_EMPTY = 0x1,
PD_ADM_RES,
PD_REJ,
PD_ULINK_REPORT,
PD_ACK,
PD_CMP_REPORT,
PD_LINK_UPDATE, //0x7
PD_QUIT_ACK,
PD_POWER_CTRL
}PD_TYPE;
    我知道 sizeof 内存分配的最小区域 一个字节即 8bit我想显示一下 能不能 看内存分配了 多少比特的函数啊
      PD_TYPE=PD_EMPTY;
char framtype=0x01;
printf("%x\n%x\n",PD_TYPE,framtype);                    显示 1 1
printf("%d%d",sizeof(PD_TYPE),sizeof(char));      显示 4  1   我觉得 应该是 0.5   1  哈哈 
运行完毕后  sizeof(PD_TYPE)竟然是 4   sizeof(char)是1
我就是想知道这个是为啥啊 ?还有有没有知道分配了多少比特的函数啊 
------解决方案--------------------
枚举量是当作整型常量来处理的,所以是4。
------解决方案--------------------
sizeof()* 8  就知道分配了多少比特
------解决方案--------------------

sizeof 返回的是整数。

PC机上编译器一般会对结构体里的变量进行对齐,不会以位存储。
------解决方案--------------------
看下C的手册就能看到   sizeof返回值是整形的  不是浮点数
------解决方案--------------------
sizeof 不会返回浮点数的