效率问题

在计算机的存储器结构中,分为四种层次:
CPU寄存器 、高速缓存器 、内存、 硬盘
上述四种存储器的读写速度依次降低。
时间局部性:在访问过某块存储器之后的不久的将来,很可能会再次访问它
空间局部性:在访问过某块存储器之后的不就的将来,很可能访问其邻近的存储器位置。
这段程序的空间局部性比较差,对于一个在内存中大幅度跳跃,无规律跳跃的程序都将影响程序的性能。这个判定对于一个连续的内存块来说是很重要的,比如C语言中的结构体。

C语言的结构体性质与知识:
对于任意一个完整定义的结构体,每一个对象所占有的内存大小都符合内存对齐的规则。
对于结构体内的各个成员而言,其相对于对象存储地址起始的距离,称为偏移量。
内存对齐便是对于一个结构体而言,其所占内存大小总是最大成员的整数倍,其中最大成员指的是最基本成员
偏移量通俗地说,就是该成员起始地址距离起始位置的长度,在结构体中,C语言是怎么为结构体分配设定大小的呢?除了内存对齐外,还需要考虑定义结构体时,其中成员的声明顺序,换句话说,谁首先声明,谁的位置就靠前。而某个成员的偏移量代表着其起始位置减去其所属对象的起始位置,(此处需要注意的是,两个毫不相干的指针相减所得到的结果是无意义的,只有当两个指针同在一个作用域内时,减法才是有意义的,为了避免潜在的错误,我们要谨慎使用指针减法操作)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值