Closed kakaxi3019 closed 5 days ago
项目中对于字节对齐的实现如下: #define MP_ALIGN_SIZE(_n) (_n + sizeof(long) - ((sizeof(long) - 1) & (_n))) 看了下这个实现如果遇到_n已经是sizeof(long)的倍数了,则还会为其加上sizeof(long)字节,感觉这里是否可以稍作修改。 一个可选的方法如下:
#define MP_ALIGN_SIZE(_n) (_n + sizeof(long) - ((sizeof(long) - 1) & (_n)))
#include <cstdint> #define MP_ALIGN_SIZE(_n) \ (((uintptr_t) (_n) + ((sizeof(long)) - 1)) & ~((uintptr_t) ((sizeof(long)) - 1)))
thanks
项目中对于字节对齐的实现如下:
#define MP_ALIGN_SIZE(_n) (_n + sizeof(long) - ((sizeof(long) - 1) & (_n)))
看了下这个实现如果遇到_n已经是sizeof(long)的倍数了,则还会为其加上sizeof(long)字节,感觉这里是否可以稍作修改。 一个可选的方法如下: