给定一个unsigned char *x
,我需要将*x
指向的地址四舍五入为16的倍数,例如0x7fff5fbff7fc
向下为0x7fff5fbff7f0
。我试图使用以下方法来转移它:
x >> 4;
x << 4;
也试过了
x >>= 4;
x <<= 4;
但考虑到它不是整数,因此我不允许这样做。有什么建议吗?
最佳答案
(unsigned char *)((uintptr_t)(x) & ~(uintptr_t)(15))
如果你想便携...
关于c - 如何将地址四舍五入为16的倍数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19481097/