- 博客(5)
- 收藏
- 关注
原创 段选择符和段描述符之间的关系
段选择符用来表示指向哪个段描述符,即用来在段描述符中寻址,前13位是地址,能寻0到(2^13)-1,因此段描述符表的大小就是 8192,他还牵扯到一些特权级的限制,后三位;段描述符是用来表示这个段的一些性质的,比如段基址和段长之类的。我们在寻址的时候,一般是从段选择符找 到段描述符,然后从段描述符中取出段基址,加上偏移就形成了我们要访问的地址。 8086中有4个16位的段寄存器:CS、DS、SS、...
2019-03-25 16:07:17
1002
1
原创 Linux内存寻址之分段机制及分页机制
前言 本文涉及的硬件平台是X86,如果是其他平台的话,如ARM,是会使用到MMU,但是没有使用到分段机制; 最近在学习Linux内核,读到《深入理解Linux内核》的内存寻址一章。原本以为自己对分段分页机制已经理解了,结果发现其实是一知半解。于是,查找了很多资料,最终理顺了内存寻址的知识。现在把我的理解记录下来,希望对内核学习者有一定帮助,也希望大家指出错误之处。 分段到底是怎么回事 相信学过操作...
2019-03-25 14:40:00
353
原创 值传递和址传递在堆栈层面的分析
关于值类型与引用类型,值传递与引用传递的总结笔记。 一、值类型与引用类型 1.堆栈中的存放: 值类型默认存放在栈中,但当值类型是在引用类型中声明的时候,则存放在其所在的引用类型的堆中。 引用类型存放在堆中。其在堆中的内存地址存放在栈中。 2.参数传递方式 值类型参数可以值传递,也可通过ref、out关键字修饰,进行引用传递。 引用类型参数只能以引用传递方式传递。 二、值传递与引用传递 ...
2019-03-21 14:17:03
204
原创 static静态方法的优缺点
static可以修饰成员变量,成员方法,代码块,类 特点: static修饰的方法和变量,为类所属方法和变量,不会在对象销毁时销毁,所以生命周期较长。 被static修饰的内容会随着类的加载而加载,优先于对象存在,成员变量和成员方法可以通过类名直接调用并被该类下所有对象共享。 在static方法中,不能出现this,super,因为其优先于对象而存在 使用: 在同一类中,当某一数据被所有实例化对象...
2019-03-21 10:16:16
1884
原创 static的三种作用
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 下面是a.c的内容: char a = ‘A’; // global variable vo...
2019-03-20 20:35:57
982
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅