如何四舍五入到下一个 32 位对齐?

tem*_*boy 2 c++ alignment

来自网络的数据包在末尾添加了填充字节以进行对齐。我想跳过这些字节,但数据包大小可变但已知。给定一个 number n,如何将其四舍五入到下一个 4 字节对齐?

Ker*_* SB 5

对于任何整数n和任何步幅k(均为正数),您可以通过以下方式计算其k不小于的最小倍数n

(n + k - 1) / k * k
Run Code Online (Sandbox Code Playgroud)

这使用了整数除法截断的事实。