以下代码将参数舍入为int大小边界字节数。将数字向上舍入为int大小边界字节数的方法
#define _INTSIZE(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1))
在我的机器int是4个字节,所以 - 纠正我,如果我错了 - 这应该是一样找一个整数的4的倍数(我的机器上)。接下来是4的倍数,我的意思是数字应该四舍五入为4的倍数,如果不是4的倍数。如果已经是4的倍数,它应该被单独留下。
我一直在玩这个代码。它的长短是:为什么此代码有效?(也许它不会,但它似乎。)我想一些理由认为它可以适用于所有情况,而不仅仅是我已经试过的。
确实将最后一位更改为'&〜(sizeof(int))'工作? – BudgieInWA