以下代碼將參數舍入爲int大小邊界字節數。將數字向上舍入爲int大小邊界字節數的方法
#define _INTSIZE(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1))
在我的機器int是4個字節,所以 - 糾正我,如果我錯了 - 這應該是一樣找一個整數的4的倍數(我的機器上)。接下來是4的倍數,我的意思是數字應該四捨五入爲4的倍數,如果不是4的倍數。如果已經是4的倍數,它應該被單獨留下。
我一直在玩這個代碼。它的長短是:爲什麼此代碼有效?(也許它不會,但它似乎。)我想一些理由認爲它可以適用於所有情況,而不僅僅是我已經試過的。
確實將最後一位更改爲'&〜(sizeof(int))'工作? – BudgieInWA