内存对齐
1.最近在看lcc源代码.有些内存对齐的不太明白,
static union { int x; char endian; } little = { 1 };
这里endian是字节序,就是"小序在前"或"大序在前"的意思,而联合体里面还定义了一个x
但是x都没用到,我猜定义x是为了内存对齐,让char endian在内存中的地址是4的整数倍,我知道
有些数如果不对齐的话可能要取2次才能从内存中取到寄存器,比如int类型的数,但是char类型是一个字节
的,无论对不对齐好像都只需要取一次,这里为什么要这样?
2.我看到源代码中在申请内存的时候比如用malloc,他申请的内存都是4K或者10k之类的,请问这样申请会
比较高效吗,如果是3k或9k不行吗?