网站开发工程师报名地点,做同城购物网站赚钱吗,河北响应式网站企业,黄山旅游攻略自由行路线推荐What I write, what I lose. 之前看到Nginx的code的时候. 看到一个关于字节对齐的实现. 突然想起之前去面试的时候, 别人让我实现一个4字节对齐. 当然奇怪别人怎么问这种问题. 这时候开始有一点点体会. 以下将个人总结的几种写法写上. #define common_align1(x) ((x/4((x%4)?…What I write, what I lose. 之前看到Nginx的code的时候. 看到一个关于字节对齐的实现. 突然想起之前去面试的时候, 别人让我实现一个4字节对齐. 当然奇怪别人怎么问这种问题. 这时候开始有一点点体会. 以下将个人总结的几种写法写上. #define common_align1(x) ((x/4((x%4)?1:0))*4)
#define common_align2(x) (((x2)((x%4)?1:0))2)
#define common_align3(x) ((x3) ~(3))
#define common_align4(x) (((x3)2)2)
#define common_align5(x) (x%4?((x2)1)2:x)
int common_align6(x) { if(x%4 0) return x; else return (x/41)*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来作为面试嵌入式相关, 的确是该被鄙视. 谢谢.转载于:https://www.cnblogs.com/freezee/archive/2012/08/20/Alignment.html