为什么只有一位的结构的大小是4字节而不是1字节

时间:2015-09-15 02:12:05

标签: c++ sizeof

我认为它应该是1.因为1个字节足以容纳这个BOOL。如果我评论“BOOL b:1”,它将成为一个空结构,现在它的大小为1。

#include <iostream>
#include <string>
using namespace std;

enum BOOL { FALSE=0, TRUE=1 };
struct A {
  BOOL b:1;
};

int main()
{
  std::cout << sizeof(A)  << std::endl; //output 4.
}

1 个答案:

答案 0 :(得分:2)

填充。

如果您希望结构“打包”(适合内存使用,TERRIBLE以提高性能),您可以使用特定于编译器的非标准方式来请求它。