博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 内存字节对齐
阅读量:6882 次
发布时间:2019-06-27

本文共 556 字,大约阅读时间需要 1 分钟。

记录下苹果实现内存字节对齐的代码如下:

#ifdef __LP64__#   define WORD_SHIFT 3UL#   define WORD_MASK 7UL#   define WORD_BITS 64#else#   define WORD_SHIFT 2UL#   define WORD_MASK 3UL#   define WORD_BITS 32#endifstatic inline uint32_t word_align(uint32_t x) {    return (x + WORD_MASK) & ~WORD_MASK;}复制代码

对比记录不同方案:

func word_align(x: UInt32) -> UInt32 {//        return (x + 7) / 8 * 8      //方案1,相对位运算效率要低//        return ((x + 7) >> 3) << 3  //方案2,通过右移左移,低三位清0        return (x + 7) & (~7)         //苹果方案,另一种低三位清0方式    }复制代码

转载于:https://juejin.im/post/5cd78f11f265da03b2044dca

你可能感兴趣的文章
用c#开发微信 (16) 微活动 2 刮刮卡
查看>>
centos linux安全和调优 第四十一节课
查看>>
XMPP协议实现即时通讯底层书写 (二)-- IOS XMPPFramework Demo+分析
查看>>
js变量值传到php(先把php解析成数据)
查看>>
【055】长江水文数据自动记录程序
查看>>
我的大学——内心毫无波澜(大一上)
查看>>
(三) git pre-push hook 实践一二
查看>>
算力大战是BCH最坏的一种处理方式
查看>>
理解音频焦点 (第 2/3 部分):更多的音频焦点用例
查看>>
[译] Babel 7.0 带来的很酷的事情
查看>>
AntD 圣诞节彩蛋事件
查看>>
用 Vue 编写一个长按指令
查看>>
07 Javascript数据结构与算法 之 排序算法
查看>>
java程序员饱和了吗?
查看>>
Spring Boot(十四)RabbitMQ延迟队列
查看>>
Java 实现中文-拼音转换
查看>>
代码来构建一个简单的compiler
查看>>
第二十三章:SpringBoot项目多模块打包与部署
查看>>
BeanFactory
查看>>
Drafter: 一个在iOS项目中分析代码结构的工具
查看>>