#include <iostream>
using namespace std;
#pragma pack(1)
struct node{
int a : 4;
};
int main() {
cout << sizeof(node) << endl;
}
输出为1,但是这里位域的类型是int,分配4个字节,所以结果不应该是4吗,其实只要把pack(1)改成pack(4),输出结果就是4了,这是为什么呢?
#include <iostream>
using namespace std;
#pragma pack(1)
struct node{
int a : 4;
};
int main() {
cout << sizeof(node) << endl;
}
输出为1,但是这里位域的类型是int,分配4个字节,所以结果不应该是4吗,其实只要把pack(1)改成pack(4),输出结果就是4了,这是为什么呢?