Câu hỏi như tiêu đề.
E có 1 struct như sau:
typedef struct {
char c;
short s;
} mystruct;
thì đối với struct này, trên OS 16bit và OS 32bit (4-byte alignment) thì struct đều có size là 4 bytes. Nhưng e thắc mắc là nếu trên OS 32bit (8-byte alignment) và OS 64bit thì kích thước của nó phải là 8 bytes thay vì 4 bytes chứ nhỉ ??
Lý do là vì trên OS 64bit, 1 WORD là 8 bytes => block đầu tiên dùng để chứa biến char c;
và biến short s;
sẽ có size là 8 bytes mặc dù thực tế chỉ cần có 4 bytes để chứa 2 biến đó.
Suy nghĩ của e nó ntn:
Nhờ các pro giúp đỡ ạ, e cảm ơn trước