字节对齐的写法.

字节对齐的写法.

What I write, what I lose.

之前看到Nginx的code的时候.看到一个关于字节对齐的实现.

突然想起之前去面试的时候, 别人让我实现一个4字节对齐. 当然奇怪别人怎么问这种问题.

这时候开始有一点点体会.

以下将个人总结的几种写法写上.

#define common_align1(x) ((x/4+((x%4)?1:0))*4)#define common_align2(x) (((x>>2)+((x%4)?1:0))<<2)#define common_align3(x) ((x+3) &~(3))#define common_align4(x) (((x+3)>>2)<<2)#define common_align5(x) (x%4?((x>>2)+1)<<2:x)int common_align6(x) { if(x%4 == 0) return x; else return (x/4+1)*4; }

以上几种, nginx和tcmalloc使用的是第3种. 个人面试中写出大概是第6种.

以上几种方法. 在虚拟机下测试过耗费时间.

大概以第三种为费时100单位的话, 以上方法费时分别为 140, 130, 100, 106, 120, 150 .

高下立判.

其实个人觉得有意思的是.

1.想起之前的普文二. 那大概3是文艺青年, 1,2,4,5是普通青年. 2B青年给方法6或者是((x/4+(x%4)?1:0)*4).

2.写出方法6来作为面试嵌入式相关, 的确是该被鄙视.

谢谢.

posted on

,免备案空间,虚拟主机,香港服务器用积极的拼搏迎接雨后的彩虹,相信自己

字节对齐的写法.

相关文章:

你感兴趣的文章:

标签云: