给定一个unsigned char *x,我需要将*x指向下的地址舍入到16的倍数.如下0x7fff5fbff7fc到0x7fff5fbff7f0.我试图改变它:
x >> 4;
x << 4;
Run Code Online (Sandbox Code Playgroud)
也试过了
x >>= 4;
x <<= 4;
Run Code Online (Sandbox Code Playgroud)
但考虑到它不是整数,它不允许我这样做.有什么建议?
小智 7
(unsigned char *)((uintptr_t)(x) & ~(uintptr_t)(15))
Run Code Online (Sandbox Code Playgroud)
如果你想要便携...