上一页 1 2 3 4 5 6 ··· 14 下一页
2025年6月5日
摘要: 引用类型 引用是一个 别名,它使得你可以通过一个新的名字来 访问已经存在的变量 指针类型 指针是一个 变量,存储另一个变量的内存地址 说得挺玄乎的,让我们以c为例子,然后再过渡到c++ 下面这一段程序很简单,就是把一个变量传给一个函数,然后函数更新这个值 聪明的你肯定发现了问题所在,那就是我们用的是 阅读全文
posted @ 2025-06-05 11:14 Dylaris 阅读(26) 评论(0) 推荐(0)
2025年6月1日
摘要: 为什么要动态链接 静态链接的问题 浪费内存和磁盘空间:静态库可能会在存在 多个副本(如果多个程序都使用了同一个静态库的话) 存在多个Lib.o 更新困难:对静态库的任意改动都可能导致整个程序要 重新链接 动态链接 要解决空间浪费和更新困难这两个问题最简单的办法就是把程序的模块相互分割开来,形成独⽴的 阅读全文
posted @ 2025-06-01 16:26 Dylaris 阅读(94) 评论(0) 推荐(0)
2025年5月30日
摘要: 程序的内存分布 栈:维护函数调用上下文以及局部变量等 堆:动态分配的内存区域 可执行文件映像:可执行文件在内存中的映像 保留区:保留区并不是⼀个单⼀的内存区域,⽽是对内存中受到保护⽽禁⽌访问的内存区域的总称 动态链接库映射区:用于映射装载的动态链接库 栈与调用惯例 栈帧或活动记录: 函数的返回地址和 阅读全文
posted @ 2025-05-30 12:06 Dylaris 阅读(16) 评论(0) 推荐(0)
2025年5月29日
摘要: 进程虚拟地址空间 程序:静态 的概念,预先编译好的指令和数据的集合的一个文件 进程:动态 的概念,程序运行时的一个过程 每个程序被运⾏起来以后,它将拥有⾃⼰独⽴的虚拟地址空间,这个虚拟地址空间的⼤⼩由计算机硬件平台决定,具体地说是由CPU的位数决定的 PAE - 物理地址扩展 PAE(物理地址扩展) 阅读全文
posted @ 2025-05-29 21:49 Dylaris 阅读(43) 评论(0) 推荐(0)
摘要: 两步链接 空间与地址分配 扫描所有的输⼊⽬标⽂件,并且获得它们的各个段的⻓度、属性和位置,并且将输⼊⽬标⽂件中的符号表中所有的符号定义和符号引⽤收集起来,统⼀放到⼀个全局符号表。这⼀步中,链接器将能够获得所有输⼊⽬标⽂件的段⻓度,并且将它们合并,计算出输出⽂件中各个段合并后的⻓度与位置,并建⽴映射关 阅读全文
posted @ 2025-05-29 12:02 Dylaris 阅读(47) 评论(0) 推荐(0)
2025年5月25日
摘要: 代码可从 /usr/include/elf.h 中找到 Executable Header 以下是 ELF header 的结构体 接下来,我们详细解析下每个字段 e_ident 这是一个 16字节 的数组,主要包含的是 ELF header 的 标识信息,(ident = identity) 以下 阅读全文
posted @ 2025-05-25 23:14 Dylaris 阅读(47) 评论(0) 推荐(0)
2025年5月15日
摘要: 互联网 互联网 internet: 将不同的计算机网络连接起来,并允许位于网络中的主机之间互相通信 子网:组成因特网的其中一个网络 术语Internet(大写的I)被用来指将全球成千上万的计算机连接起来的TCP/IP互联网 互联网的目标是隐藏不同物理网络的细节以便向互联网络中的所有主机呈现一个统一的 阅读全文
posted @ 2025-05-15 22:33 Dylaris 阅读(27) 评论(0) 推荐(0)
2025年5月12日
摘要: 什么是socket socket 是一种IPC方法,它允许位于同一主机(计算机)或使用网络连接起来的不同主机上的应用程序之间交换数据 通信 domain socket 存在于一个通信domain中,它确定了: 识别出一个socket的方法(即 socket“地址”的格式) 通信范围(即是在位于 同一 阅读全文
posted @ 2025-05-12 13:45 Dylaris 阅读(41) 评论(0) 推荐(0)
摘要: 在讲如何实现之前,我们首先要了解什么是 热重载 热重载 C 这是一篇挺好的文章,可以帮助大家了解相关概念(尤其是动态链接部分,本文并不打算讲解这部分,本文可以看成是对这篇文章例子的补充) 按照我的理解,热重载 这个名字其实就能够解释了,就是 重新载入 '热' 的部分,重新载入 好理解,那什么是 热 阅读全文
posted @ 2025-05-12 11:28 Dylaris 阅读(111) 评论(0) 推荐(0)
2025年5月11日
摘要: lua中并没有 switch 语句,我们该怎么实现一个简单的 switch 呢 switch (c) { case 'a': printf("aaa\n"); break; case 'b': printf("bbb\n"); break; case 'c': printf("ccc\n"); br 阅读全文
posted @ 2025-05-11 20:30 Dylaris 阅读(284) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 14 下一页