iOS 内存字节对齐

iOS 内存字节对齐

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

#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
#endif

static 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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100931.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 拉格朗日插值公式详解[通俗易懂]

    拉格朗日插值公式详解[通俗易懂]一.线性插值(一次插值)   已知函数f(x)在区间[xk ,xk+1 ]的端点上的函数值yk =f(xk ),yk+1 =f(xk+1 ),求一个一次函数y=P1 (x)使得yk =f(xk ),yk+1 =f(xk+1 ),其几何意义是已知平面上两点(xk ,yk ),(xk+1 ,yk+1 ),求一条直线过该已知两点。   1.插值函数和插值基函数由直线的

    2022年10月22日
    0
  • C# 经典排序算法大全

    C# 经典排序算法大全

    2022年1月4日
    40
  • LocationManager的简单使用

    LocationManager在Android中可以根据LocationManager来获取设备所在的地理信息根据需求可以将定位的代码移动到所需的地方或者可以稍加改动获取城市的信息MainActivity中:packagecom.example.myapplicationpp;importandroid.Manifest;importandroid.app.Activity;…

    2022年4月5日
    37
  • linux修改smb端口_sftp默认端口号是多少

    linux修改smb端口_sftp默认端口号是多少本文介绍如何在Linux操作系统中更改默认的SFTP端口,支持Ubuntu、CentOS等发行版,同时还将向您展示如何配置防火墙以允许在新端口上使用。先声明的一点是不要将SFTP与FTPS混淆,因为两种协议具有相同的目的,FTPS代表FTPSecure,它是对标准FTP协议的扩展,支持TLS。简介SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件,它还允许您…

    2022年9月14日
    1
  • Nmap命令扫描详解

    Nmap命令扫描详解在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSLModem、集线器、交换机、路由器上用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。由于物理端口和逻辑端口数量较多,为

    2022年5月27日
    110
  • goland 激活码2020【在线破解激活】

    goland 激活码2020【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号