学习libcstr源码,发现一个很好的方法:申请一个内存,改内存的大小要求字节对齐。
如在一个32位的设备上,申请内存大小为3,实际获取大小为4;申请内存大小为4,实际内存大小仍未4;申请大小为6,则实际申请大小为8.
size_t align(size_t s) {
return (s + (sizeof (char *) - 1)) & ~(sizeof (char *) - 1);
}
学习libcstr源码,发现一个很好的方法:申请一个内存,改内存的大小要求字节对齐。
如在一个32位的设备上,申请内存大小为3,实际获取大小为4;申请内存大小为4,实际内存大小仍未4;申请大小为6,则实际申请大小为8.
size_t align(size_t s) {
return (s + (sizeof (char *) - 1)) & ~(sizeof (char *) - 1);
}