Tôi tò mò muốn biết tại sao các trường bit có cùng kiểu dữ liệu có kích thước nhỏ hơn so với các loại dữ liệu hỗn hợp .tại sao các trường bit cho cùng một kiểu dữ liệu có kích thước nhỏ hơn so với trường bit cho kiểu dữ liệu hỗn hợp
struct xyz
{
int x : 1;
int y : 1;
int z : 1;
};
struct abc
{
char x : 1;
int y : 1;
bool z : 1;
};
sizeof (xyz) = 4 sizeof (abc) = 12.
Tôi đang sử dụng VS 2005, máy 64bit x86.
Câu trả lời cấp máy/trình biên dịch bit sẽ rất tuyệt.
Lưu ý rằng các trường bit không thực sự có yêu cầu căn chỉnh. –
Không, nhưng trình biên dịch không có nghĩa vụ đóng gói chúng. – greyfade
Xem ISO14882: 2003, §9.6, đoạn 1. – greyfade