Loại của mỗi thành viên của cấu trúc thường có một căn chỉnh mặc định là thành phần cấu trúc i.e.each được căn chỉnh trên một ranh giới được xác định trước. Vì lý do này đệm được thực hiện trong ví dụ wiki sau:Tại sao lại ưu tiên liên kết cấu trúc dữ liệu?
struct MixedData
{
char Data1;
short Data2;
int Data3;
char Data4;
};
struct MixedData /* After compilation in 32-bit x86 machine */
{
char Data1; /* 1 byte */
/* 1 byte for the following 'short' to be aligned on a 2 byte boundary
assuming that the address where structure begins is an even number */
char Padding1[1];
short Data2; /* 2 bytes */
int Data3; /* 4 bytes - largest structure member */
char Data4; /* 1 byte */
char Padding2[3]; /* 3 bytes to make total size of the structure 12 bytes */
};
sự (thực tế) Vì lý do đó sự liên kết cần được bảo tồn là gì?
bản sao có thể có của [Tại sao không C++ làm cho cấu trúc chặt hơn?] (Http://stackoverflow.com/questions/6730664/why-doesnt-c-make-the-structure-tighter) –
Tham khảo liên kết này. Nó sẽ giúp bạn hiểu cách căn chỉnh giúp truy cập nhanh có thể. http://www.geeksforgeeks.org/archives/9705 –