關於C/CPP使用結構體中位域的一些筆記

Lina0205發表於2024-10-12

工作中軟體通訊用到了結構體,在解析時,對應第一個變數在高位還是低位一直記不住。故計此部落格作為筆記

typedef struct _stBin
{
	BYTE bOne : 2; 
	BYTE bTwo : 2;
	BYTE bThree : 2;
	BYTE bFour : 2; 
	_stBin()
	{
		bOne = 0;
		bTwo = 0;
		bThree = 0;
		bFour = 0;
	}
}stBin;

以上述結構體為例

stBin a;
a.bFour = 0;
a.bThree = 1;
a.bTwo = 2;
a.bOne = 3;

BYTE b = 0;
::CopyMemory(&b, &a, sizeof(stBin));

執行以上程式後a,b的值分別為:

可以看到成員變數是從上到下佔用從低到高的位元位;

相關文章