02 2014 档案
摘要:1、概述C++中出了const关键字以后,宏定义常量的功能已经不在被推荐使用。这使得宏似乎没有了用武之地。实际上,宏还可以做很多事情,笔者也难以全部列举。这里,仅仅列举几个典型的用法,希望大家能够从中获益。2、实现多环境兼容常见的情况是,我们实现了一个函数,希望它只在某种编译条件满足时被编译和使用。例如,我希望在源码中插入调试语句,以便以Debug方式运行时能够通过调试信息观察程序运行情况。但是,在产品发售给用户时,我又希望这些调试信息不要输出,以降低代码尺寸,提高运行性能。这一问题的解决方法就是使用宏。根据条件编译指令,对于不同的编译条件,提供不同的实现。例如:我们希望在特定的位置向日志中写
阅读全文
摘要:CPU 主要有: 控制器 + 运算器控制器由 程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成。它是计算机指挥系统,完成计算机的指挥工作 取指令 分析指令 , 执行指令程序计数器、PC: 这玩意 存储 将要执行的下一条 指令 顺序 JMP指令寄存器 IR: 保存当前要执行的指令。地址寄存器 AR: 用来保存当前CPU所访问的内存单元的 地址。指令译码器 ID : 指令分为操作码 和 地址码两部分,要执行一个指令时 ,必须对操作吗进行 分析 ,指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。2 运
阅读全文
摘要:当高级语言函数被编译成机器码时,有一个问题就必须解决:因为CPU没有办法知道一个函数调用需要多少个、什么样的参数。即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者和函数本身来协调。为此,计算机提供了一种被称为栈的数据结构来支持参数传递。 函数调用时,调用者依次把参数压栈,然后调用函数,函数被调用以后,在栈中取得数据,并进行计算。函数计算结束以后,或者调用者、或者函数本身修改栈,使栈恢复原装。在参数传递中,有两个很重要的问题必须得到明确说明: 1) 当参数个数多于一个时,按照什么顺序把参数压入堆栈;2) 函数调用后,由谁来把栈恢复原装。3)函数的返回值放在什么地方在高级语言中
阅读全文

浙公网安备 33010602011771号