new*_*erl 5 c memory-alignment
struct { /* Fileheader */
uchar file_version[4];
uchar options[2];
uchar header_length[2];
uchar state_info_length[2];
uchar base_info_length[2];
uchar base_pos[2];
uchar key_parts[2]; /* Key parts */
uchar unique_key_parts[2]; /* Key parts + unique parts */
uchar keys; /* number of keys in file */
uchar uniques; /* number of UNIQUE definitions */
uchar language; /* Language for indexes */
uchar max_block_size_index; /* max keyblock size */
uchar fulltext_keys;
uchar not_used; /* To align to 8 */
} header;
Run Code Online (Sandbox Code Playgroud)
以上是从MySQL源码中提取的,
为什么要费心去做8?
这是一种优化,可以让CPU更有效地访问内存中的结构.
http://en.wikipedia.org/wiki/Data_structure_alignment