0
点赞
收藏
分享

微信扫一扫

用宏定义字节对齐

有时候我们需要对一个数字节对齐。

实例代码:

#include <stdio.h>

#define CEILING_2_POWER(x,a) ( ((x) + ((a) - 1) ) & ( ~((a) - 1) ) )//字节对齐

#define A(x,a) ((x) + ((a) - 1) )//先加

#define B(x,a) ( ~((a) - 1) )//再用低位取零
int main( )
{
unsigned int i = 15, j = 16;
printf("0x%x\n", CEILING_2_POWER(i,j));
printf("0x%x\n", A(i,j));
printf("0x%x\n", B(i,j));

return 0;
}

运行结果:

0x10
0x1e
0xfffffff0

 

 

举报

相关推荐

0 条评论