关于sizeof的有关问题 能返回 0.5 吗
关于sizeof的问题 能返回 0.5 吗
一个数据帧 中 帧类型是用 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 不会返回浮点数的
一个数据帧 中 帧类型是用 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 不会返回浮点数的