我在我们的代码库的实用程序 header 中找到了以下宏:
#define CEILING(x,y) (((x) + (y) - 1) / (y))
我(在this answer的帮助下)将其解析为:
// Return the smallest multiple N of y such that:
// x <= y * N
但是,无论我怎么盯着我们的代码库中如何使用此宏,我都无法理解这种操作的值(value)。没有对这些用法进行评论,这似乎表明它是显而易见的。
谁能为此宏提供用例的英文说明?这可能是令人眼花just乱的显而易见,我只是看不到...
最佳答案
假设您要分块分配内存(请考虑:高速缓存行,磁盘扇区);容纳整数个包含X
字节的块将需要多少内存?如果卡盘大小为Y
,则答案为:CEILING(X,Y)