美文网首页
iOS 数据类型占用内存

iOS 数据类型占用内存

作者: MQ_Twist | 来源:发表于2020-08-20 11:14 被阅读0次

不要去寻找那些你不想遇到的东西。

前言

坐在马桶上冥想的时候,就思绪满天飞,不知道为啥就想到有次面试的时候,被问到iOS的数据类型占用内存情况,最近还是有点时间就整理了一下。

  • 32位
char : 1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int : 4个字节                        范围  -2147483648~2147483647
unsigned int : 4个字节
long : 4个字节                         范围 和int一样
long long : 8个字节                 范围  -9223372036854775808~9223372036854775807
unsigned long long : 8个字节    最大值:1844674407370955161
float : 4个字节
double : 8个字节
  • 64位
char : 1个字节
char*(即指针变量) : 8个字节
short int : 2个字节
int : 4个字节                      范围  -2147483648~2147483647
unsigned int : 4个字节
long : 8个字节                     范围  -9223372036854775808~9223372036854775807
long long : 8个字节            范围  -9223372036854775808~9223372036854775807
unsigned long long : 8个字节    最大值:1844674407370955161
float : 4个字节
double : 8个字节

快速记忆法
只有char*(32位 4 Byte,64位 8 Byte)和long(32位 4 Byte,64位 8 Byte)所占字节是不同的。

特别的:4个字节的最大范围是4294967295, int只是占四个字节,不能用int来存储四个字节的数,要不然会越界。

  • intNSIntege区别

在苹果的api实现中,NSInteger是一个封装,它会识别当前操作系统的位数,自动返回最大的类型。
定义的代码类似于下:

#if __LP64__ || 0 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif

NSIntegerint的区别是NSInteger会根据系统的位数(32or64)自动选择int的最大数值(int or long)。

后记

温故而知新,可以为师矣。

相关文章

  • iOS 数据类型占用内存

    不要去寻找那些你不想遇到的东西。 前言 坐在马桶上冥想的时候,就思绪满天飞,不知道为啥就想到有次面试的时候,被问到...

  • Swift 5 MemoryLayout

    MemoryLayout 获取数据类型占用内存的大小

  • iOS 内存分析-- 图片加载内存分析

    对于大多数APP来说,内存占用主要就是图片,本文将从实用角度分析,iOS图片的内存占用、测量、优化等。 iOS内存...

  • WWDC2018 - iOS Memory Deep Dive

    前言 这个topic主要介绍了如何分析iOS app的内存占用和如何做内存优化,包括以下几部分, 什么是内存占用 ...

  • 04-Go语言常量和变量

    Go数据类型 C语言的数据类型image GO语言数据类型image GO数据类型占用的内存空间image 注意点...

  • OC 对象内存探索(内存对齐)

    OC底层原理学习 iOS中获取内存大小的三种方式 sizeof得到的结果是数据类型占用的空间大小,传入的参数是数据...

  • 内存管理:部分基础知识

    一、内存分区二、常用数据类型占用内存大小三、给对象分配内存 1、给结构体分配内存及内存对齐 2、内存分配完后,内存...

  • C语言中内存对其规则

    C语言中结构体内存对齐规则 对齐规则: 内存偏移为该数据类型的最小整数倍 总体占用内存为结构体中最大数据类型的整数...

  • 内存管理

    iOS不同的系统版本对 App 运行时占用内存的限制不同,另外,系统版本的升级也会增加占用的内存,同时 App 功...

  • iOS内存管理

    iOS内存管理机制 基本数据类型无需我们管理,内存管理的范围是对象,iOS内存管理采用了引用计数器的方式来管理内存...

网友评论

      本文标题:iOS 数据类型占用内存

      本文链接:https://www.haomeiwen.com/subject/lirsjktx.html