编译基本流程
先通过预处理,然后通过前端->中端->后端的流程,得到最终结果
TAG_COLLECTION //
共有 17 篇笔记使用了这个 Tag。
先通过预处理,然后通过前端->中端->后端的流程,得到最终结果
首先,CPU 访问速度和主内存的运行速度一定存在差异,且 CPU 的速度快于内存的速度。假设没有缓存机制,那么代码的执行顺序——从内存中读取指令和必要数据等,然后运算,接着等待内存传输数据,这边等待的时候,就严重降低了运算速度——我们的运算上限被内存的运算速度给限制住了!
从 OI 开始,“背过”一个解法 —— 补码 原码的反码 + 1,也就是把原码按位反转之后加1就好。但是具体为什么要定义这样的一个算法,一直没有认真考虑。 理解
我们在启动一个进程的时候, 操作系统会进行资源分配. 接下来以 C++ 作为载体稍微对这块内容进行说明罢.
一般来说, 为了加速, 类型的对象要求其起始地址满足”对齐“ —— 比如在常见的 x86-64 下, int 对齐要求是 4 —— 即我们希望 int 类型存储的首地址 address % 4 0
位模式, Bit Pattern —— 我们可以换一个角度看待一个“数”, 它不单纯是存储传统意义上的数据, 也可以是表示了一串的状态信息等.
简述一下之间的区别与联系 (假设使用时间片轮转的抢占式调度方式,其实还有优先级调度、多级反馈队列(MLFQ)、完全公平调度(CFS)等调度方式
一般来说,线程可以被
主要分为 ——
一次操作,多个数据 —— 理解为向量运算
Application Binary Interface,应用程序二进制接口,“二进制” —— 这是规定了各个软件组件在二进制级别交互的规范。
直接看例子 int x 一般来说在常见的 x86-64 环境中 ——
对于一个数据的查找,之前说过二叉树搜索树,以及为了使得其平均效率更好,提出的各种各样的平衡二叉树的概念,不赖
借助简单例子说明清楚 C++ 的编译到运行中的程序的过程,首先简单来说,我们会经过如下步骤 ——
主要借助这个机会简单说下 XOR ( 异或 ) 运算
日常 debug —— 古法在想要的断点处输出点什么 ( 比如 f-word
UB, 未定义的行为 —— 说明行为分为「定义」的和「未定义」的两种. (一如既往的废话)