在C或C++,它显然可以限制位变量的数目,因此,例如:位的设置问题
unsigned char A:1;
unsigned char B:3;
我不熟但它是如何工作特别,所以一些问题:
如果我有以下变量的类:
unsigned char A:1;
unsigned char B:3;
unsigned char C:1;
unsigned char D:3;
- 什么上述技术实际上叫什么名字?
- 大于等于4个字节的大小,还是大小为1个字节?
- 变量被视为1(或3)位如图所示,或按照'unsigned char'被视为每个字节?
- 有没有将位组合到一个集中的字节的方法?例如:
。
unsigned char MainByte;
unsigned char A:1; //Can this be made to point at the first bit in MainByte?
unsigned char B:3; //Etc etc
unsigned char C:1;
unsigned char D:3;
- 是否有涵盖更深入这个话题的文章?
- 如果'A:1'被视为一个完整的字节,它的点/紫色是什么?
随意提及任何其他考虑(如编译器限制或其他限制)。
谢谢。
您正在寻找的名称是bitfields –
我想我应该问:您使用的是C还是C++?如果C++,你是否在非POD类中使用它?我有一种感觉,C++将位域限制为POD结构类型。 –
C++。我包括btoh,所以我知道两个规格的差异(也扩大了适用的解决方案)。是的,我在课堂上使用它(虽然现在是设计阶段),但如果它只能用作结构,我可以轻松地转换。它为一个GIF图像加载程序。 – SSight3