c – 如何将值与给定的对齐方式对齐

前端之家收集整理的这篇文章主要介绍了c – 如何将值与给定的对齐方式对齐前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_1@我有一个值,我想要对齐给定的对齐,即如果它尚未对齐,则将值增加到对齐的下一个倍数.

在C中这样做的简洁方法是什么?

例如

int x;
int alignment;
int y = ???; // align x to alignment

解决方法

让我们说对齐是一个
---(k-1)a-----------x--------------ka---------
         <----r----><-----(a-r)--->

其中k是整数(因此ka是对齐的倍数)

首先找到剩下的

r = x%a

然后将x增加到下一个倍数

y = x(a-r)

但如果r = 0,那么y = x

最后

r = x%a;
y = r? x + (a - r) : x;

猜你在找的C&C++相关文章