我正在尝试弄清楚这段代码的作用。我正在分析我教授的 malloc 代码,他的代码中有这个函数。我不明白他为什么这样做。对我来说,它只是返回相同数量的分配空间。
static inline size_t word_align(size_t size) {
return size + (sizeof(size_t) - 1) & ~(sizeof(size_t) - 1);
}
最佳答案
您可能已经亲眼目睹了这一点:一个简单的示例显示了单词对齐。
#include <stdio.h>
size_t word_align(size_t size)
{
return size + (sizeof(size_t) - 1) & ~(sizeof(size_t) - 1);
}
int main(void)
{
size_t i;
for (i=1; i<10; i++)
printf("%zu %zu\n", i, word_align(i));
return 0;
}
程序输出:
1 4
2 4
3 4
4 4
5 8
6 8
7 8
8 8
9 12
关于c - 这不是只是返回原始大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34730431/