thể trùng lặp:
Why isn’t sizeof for a struct equal to the sum of sizeof of each member?kích thước của struct trong C
xem xét mã C sau:
#include <stdio.h>
struct employee
{
int id;
char name[30];
};
int main()
{
struct employee e1;
printf("%d %d %d", sizeof(e1.id), sizeof(e1.name), sizeof(e1));
return(0);
}
Đầu ra là:
Tại sao kích thước của cấu trúc không bằng tổng của các kích thước của các biến thành phần riêng lẻ của nó?
Bạn có thể sử dụng thuộc tính được đóng gói trong gcc .. Điều này sẽ giảm tỷ lệ đệm và giữ cấu trúc càng nhỏ càng tốt. struct test_t { int c; } __attribute __ ((__ packed__)); – eaanon01
Bản sao của (ít nhất) http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member – dmckee
eaanon01 . bạn không nên nói với ai về thứ gì đó không thể chuyển nhượng như thuộc tính được đóng gói trừ khi có một lý do thực sự tốt và tất cả các hàm ý đều được hiểu. –