下面的宏是实现什么的?哪位指点下,该怎么解决

下面的宏是实现什么的?哪位指点下
#define ROUNDUP(x,y) ((((x)+((y)-1))/(y))*(y))



------解决方案--------------------
探讨

如果是整型, 可以理解为是把x向y取整。

------解决方案--------------------
探讨

引用:

如果是整型, 可以理解为是把x向y取整。


x 向 y取整, 即 在y的整倍数中, 找到一个大于或等于x的最小值。

------解决方案--------------------
#define ROUNDUP(x,y) ((((x)+((y)-1))/(y))*(y))

可以理解为一种数据对齐

比如:
你要分配10个字节的内存,但是你的内存是按块分配的,每块长度为8字节

那么执行ROUNDUP(10,8);之后就会获得两个内存块;即使你并没有用到16个字节