欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++工作笔记-对结构体的进一步认识

程序员文章站 2022-07-13 22:02:27
...

最近接触了层次库,里面生成的结构体,有个很奇怪的形式,如下面代码所示:

#include <iostream>
using namespace std;

typedef struct MyStructA
{
	int m_a : 1;
	int m_b : 1;
	int m_c : 2;
	int m_e = 100;
}MyStructA;

typedef struct  MyStructB
{
	int m_a : 1;
}MyStructB;

typedef struct MyStructC{

}MyStructC;

typedef struct MyStructD{
	bool m_a;
}MyStructD;

typedef struct MyStructE{
	long long m_a : 1;
}MyStrucctE;

void main(){
	MyStructA mystructA;
	MyStructB mystructB;
	MyStructC mystructC;
	MyStructD mystructD;
	MyStructE mystructE;
	cout << "mystructA sizeof:" << sizeof(mystructA) << endl;
	cout << "mystructB sizeof:" << sizeof(mystructB) << endl;
	cout << "mystructC sizeof:" << sizeof(mystructC) << endl;
	cout << "mystructD sizeof:" << sizeof(mystructD) << endl;
	cout << "mystructE sizeof:" << sizeof(mystructE) << endl;

	getchar();
}

运行截图如下:

C++工作笔记-对结构体的进一步认识

这里只要了解

typedef struct MyStructA
{
int m_a : 1;
int m_b : 1;
int m_c : 2;
int m_e = 100;

}MyStructA;


冒号后面是宽度,这样把4个字节的int分成了1,1,2的形式