#include <iostream>
using namespace std;
typedef unsigned char u_char;
struct tagControl
{
u_char fc_subtype : 4;
u_char fc_type : 2;
u_char fc_protocol_version : 2;
u_char fc_order : 1;
u_char fc_wep : 1;
u_char fc_more_data : 1;
u_char fc_pwr_mgt : 1;
u_char fc_retry : 1;
u_char fc_more_frag : 1;
u_char fc_from_ds : 1;
u_char fc_to_ds : 1;
};
int main()
{
cout << "sizeof(tagControl) = " <<sizeof(tagControl)<< endl;
return 0;
}
/*
Output:
sizeof(tagControl) = 2
*/
如上,是位域操作的表示方法,也就是说后面加上“:1”的意思是这个成员的大小占所定义类型的1 bit,“:2”占2 bit,依次类推。当然大小不能超过所定义类型包含的总bit数。
一个bytes(字节)是8 bit(bit)。例如你的结构中定义的类型是u_char,一个字节,
版权声明:本文为zhu2695原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。