The following code rounds up the argument to an int size boundary number of bytes.
#define _INTSIZE(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1))
On my machine int is 4 bytes, so -- correct me if I'm wrong -- this should be the same as looking for the next multiple of 4 of an integer (on my machine). By next multiple of 4, I mean the number should be rounded up to a multiple of 4 if not a multiple of 4. If already a multiple of 4, it should be left alone.
I've been playing around with this code. The long and short of it is: why does this code work? (Maybe it doesn't, but it seems to.) I would like some reason to think it will work for ALL cases, not just the ones I've tried out.