Microsoft PowerPoint - RuntimeEnvII [Compatibility Mode]

Size: px
Start display at page:

Download "Microsoft PowerPoint - RuntimeEnvII [Compatibility Mode]"

Transcription

1 第六章运行时存储空间的组织和管理 活动树 运行栈 一个活动记录中的数据布局 程序执行过程中的数据布局 非局部名字的访问 静态作用域 : 无过程嵌套 有过程嵌套 动态作用域 参数传递 Call by value/reference/name 堆管理 本节介绍 无过程嵌套的静态作用域 (C 语言 ) 有过程嵌套的静态作用域 (Pacal 语言 ) 动态作用域 (Lip 语言 ) 631 无过程嵌套的静态作用域 过程体中的非局部引用可以直接使用静态确定的地址 ( 非局部数据此时就是全局数据 ) 局部变量在栈顶的活动记录中, 可以通过 bae_p 指针来访问 无须深入栈中取数据, 无须 过程可以作为参数来传递, 也可以作为结果来返回 632 有过程嵌套的静态作用域图 614 P177 ort readarray exchange quickort partition 632 有过程嵌套的静态作用域 过程嵌套深度 ort 1 readarray 2 exchange 2 quickort 2 partition 3 变量的嵌套深度 : 它的声明所在过程的嵌套深度作为该名字的嵌套深度 用来寻找非局部名字的存储单元 i, j p (1, 3) e (1, 3) i, j p (1, 3) 1

2 访问非局部名字的存储单元假定过程 p 的嵌套深度为 n p, 它引用嵌套深度为 n a 的变量 a,n a n p, 如何访问 a 的存储单元 ort 1 readarray 2 exchange 2 quickort 2 partition 3 访问非局部名字的存储单元 假定过程 p 的嵌套深度为 n p, 它引用嵌套深度为 n a 的变量 a,n a n p, 如何访问 a 的存储单元 从栈顶的活动记录开始, 追踪 n p n a 次 到达 a 的声明所在过程的活动记录 的追踪用间接操作就可完成 ort 1 readarray 2 exchange 2 quickort 2 partition 3 访问非局部名字的存储单元 ort readarray i, j exchange quickort p (1, 3) partition e (1, 3) i, j p (1, 3) 过程 p 对变量 a 访问时,a 的地址由下面的二元组表示 : (n p n a,a 在活动记录中的偏移 ) 建立 假定嵌套深度为 n p 的过程 p 调用嵌套深度为 n x 的过程 x (1) n p < n x 的情况 ort 1 readarray 2 exchange 2 quickort 2 partition 3 这时 x 肯定就声明在 p 中 建立 假定嵌套深度为 n p 的过程 p 调用嵌套深度为 n x 的过程 x (1) n p < n x 的情况 被调用过程的必须指向调用过程的活动记录的 解决 : 诸如在 quickort(1, 3) 调用 partition(1, 3) 时如何确定后者活动记录中的的问题 2

3 访问非局部名字的存储单元 ort readarray i, j exchange quickort p (1, 3) partition e (1, 3) i, j p (1, 3) 建立 假定嵌套深度为 n p 的过程 p 调用嵌套深度为 n x 的过程 x (2) n p n x 的情况 ort 1 readarray 2 exchange 2 quickort 2 partition 3 这时 p 和 x 的嵌套深度分别为 1,2,, n x 1 的外围过程肯定相同 建立 假定嵌套深度为 n p 的过程 p 调用嵌套深度为 n x 的过程 x (2) n p n x 的情况 追踪 n p n x +1 次, 到达了静态包围 x 和 p 的且离它们最近的那个过程的最新活动记录 所到达的活动记录就是 x 的活动记录中的应该指向的那个活动记录解决 : 诸如在 partition(1, 3) 调用 exchange(1, 3) 时如何确定后者活动记录中的的问题 访问非局部名字的存储单元 ort readarray i, j exchange quickort p (1, 3) partition e (1, 3) i, j p (1, 3) program param(input, output);( 过程作为参数 ) procedure b(function h(n: integer): integer); writeln(h(2)) end {b; procedure c; var m: integer; function f(n: integer): integer; f := m+n end {f; m := 0; b(f) end {c; c 函数 f 作为参数传递时, 怎样在 f 被激活时建立它的 program param(input, output);( 过程作为参数 ) procedure b(function h( writeln(h(2)) end ; procedure c; var m: integer; function f(n: integer) f := m+n end {f; m := 0; b(f) end {c; c 从 b 的难以建立 f 的 <f > b m c param 3

4 program param(input, output);( 过程作为参数 ) procedure b(function h( writeln(h(2)) end ; procedure c; var m: integer; function f(n: integer) f := m+n end {f; m := 0; b(f) end {c; c f 作为参数传递时, 它的起始地址连同它的一起传递 <f, > b m c param program param(input, output);( 过程作为参数 ) procedure b(function h( writeln(h(2)) end ; f procedure c; var m: integer; function f(n: integer) f := m+n end {f; <f, > b m m := 0; b(f) end {c; c b 调用 f 时, 用传递过来的来建立 f 的 c param program ret (input, output);( 过程作为返回值 ) var f: function (integer): integer; function a: function (integer): integer; var m: integer; function addm (n: integer): integer; return m+n end; m:= 0; return addm end; procedure b (g: function (integer): integer); writeln (g(2)) end; f := a; b(f) a ret b addm program ret (input, output);( 过程作为返回值 ) var f: function (integer): integer; function a: function (integer): integer; var m: integer; function addm (n: integer): integer; return m+n end; m:= 0; return addm end; procedure b (g: function (integer): integer); ret writeln (g(2)) end; f := a; b(f) 执行 addm 时,a 的活动记录已不存在, 取不到 m 的值 a b addm program ret (input, output);( 过程作为返回值 ) var f: function (integer): integer; function a: function (integer): integer; var m: integer; function addm (n: integer): integer; return m+n end; m:= 0; return addm end; procedure b (g: function (integer): integer); ret writeln (g(2)) end; f := a; b(f) 执行 addm 时,a 的活动记录已不存在, 取不到 m 的值 a b addm C 语言的函数声明不能嵌套, 函数不论在什么情况下激活, 要访问的数据分成两种情况 非静态局部变量 ( 包括形式参数 ), 它们分配在活动记录栈顶的那个活动记录中 外部变量 ( 包括定义在其它源文件之中的外部变量 ) 和静态的局部变量, 它们都分配在静态数据区 因此 C 语言允许函数 ( 的指针 ) 作为返回值 4

5 633 动态作用域 被调用过程的非局部名字 a 和它在调用过程中引用的是同样的存储单元 基于运行时的调用关系 而不是基于静态作用域来确定 新的绑定仅为被调用过程的局部名字建立, 这些名字在被调用过程的活动记录中占用存储单元 这一点与静态作用域没有区别 procedure how; how mall how write(r: 5: 3) end; procedure mall; how r := 0125; how end; r := 025; how; mall; writeln; how; mall; writeln mall how procedure how; how mall how write(r: 5: 3) end; procedure mall; how r := 0125; how end; 静态作用域 r := 025; how; mall; writeln; how; mall; writeln mall how procedure how; how mall how write(r: 5: 3) end; procedure mall; how r := 0125; how end; 动态作用域 r := 025; how; mall; writeln; how; mall; writeln mall how 实现动态作用域的方法 深访问 用控制链搜索运行栈, 寻找包含该非局部名字的第一个活动记录 浅访问 为每个名字在静态分配的存储空间中保存它的当前值 当过程 p 的新活动出现时,p 的局部名字 n 使用在静态数据区分配给 n 的存储单元 n 的先前值保存在 p 的活动记录中, 当 p 的活动结束时再恢复 procedure how; how mall how write(r: 5: 3) end; procedure mall; how 静态区 r := 0125; how end; 使用值的地方 ( 绿色表示已执行部分 ) r := 025; how; mall; writeln; how; mall; writeln r? mall how 栈区暂存值的地方 dynamic r? 5

6 procedure how; how mall how write(r: 5: 3) end; procedure mall; how 静态区 r := 0125; how end; 使用值的地方 ( 绿色表示已执行部分 ) r := 025; how; mall; writeln; how; mall; writeln r 025 mall how 栈区暂存值的地方 dynamic r? procedure how; how mall how write(r: 5: 3) end; procedure mall; how 静态区 r := 0125; how end; 使用值的地方 ( 绿色表示已执行部分 ) r := 025; how; mall; writeln; how; mall; writeln r 025 mall how 栈区暂存值的地方 how dynamic r? procedure how; how mall how mall write(r: 5: 3) end; procedure mall; how how 静态区栈区 r := 0125; how end; 使用值的地方暂存值的地方 ( 绿色表示已执行部分 ) r := 025; mall how; mall; writeln; r r how; mall; writeln dynamic r? procedure how; how mall how mall write(r: 5: 3) end; procedure mall; how how 静态区栈区 r := 0125; how end; 使用值的地方暂存值的地方 ( 绿色表示已执行部分 ) r := 025; mall how; mall; writeln; r r how; mall; writeln dynamic r? procedure how; how mall how write(r: 5: 3) end; procedure mall; how 静态区 r := 0125; how end; 使用值的地方 ( 绿色表示已执行部分 ) r := 025; how; mall; writeln; how; mall; writeln r 025 mall how 栈区暂存值的地方 dynamic r? 64 参数传递 641 值调用 (call by value) 实参的右值传给被调用过程 值调用可以如下实现 把形参当作所在过程的局部名看待, 形参的存储单元在该过程的活动记录中 调用过程计算实参, 并把其右值放入被调用过程形参的存储单元中 6

7 64 参数传递 642 引用调用 (call by reference) 实参的左值传给被调用过程 引用调用可以如下实现 : 把形参当作所在过程的局部名看待, 形参的存储单元在该过程的活动记录中 调用过程计算实参, 把实参的左值放入被调用过程形参的存储单元 在被调用过程的目标代码中, 任何对形参的引用都是通过传给该过程的指针来间接引用实参 64 参数传递 643 换名调用 (call by name) 从概念上说, 每次调用时, 用实参表达式对形参进行正文替换, 然后再执行 procedure wap(var x, y: integer); var temp: integer; temp := x; x:=y; y:=temp end 64 参数传递 643 换名调用 从概念上说, 每次调用时, 用实参表达式对 形参进行正文替换, 然后再执行 procedure wap(var x, y: integer); var temp: integer; 例如 : 调用 wap(i, a[i]) temp := x; x:=y; y:=temp end 64 参数传递 643 换名调用 从概念上说, 每次调用时, 用实参表达式对 形参进行正文替换, 然后再执行 procedure wap(var x, y: integer); var temp: integer; 例如 : 调用 wap(i, a[i]) 替换结果 : temp := i; temp := x; i := a[i]; x:=y; a[i]:=temp y:=temp end 64 参数传递 643 换名调用 从概念上说, 每次调用时, 用实参表达式对 形参进行正文替换, 然后再执行 procedure wap(var x, y: integer); var temp: integer; 例如 : 调用 wap(i, a[i]) 替换结果 : temp := i; temp := x; i := a[i]; x:=y; a[i]:=temp y:=temp 交换两个数据的程序 end 并非总是正确 65 堆管理 堆式分配 (heap allocation) 堆用来存放生存期不确定的数据 C++ 和 Java 允许程序员用 new 创建对象, 它们的生存期没有被约束在创建它们的过程活动的生成期之内 实现内存回收是内存管理器的责任 堆空间的回收有两种不同方式 程序显式释放空间 :free(c) 或 delete(c++) 垃圾收集器自动收集 (Java) 113 节介绍垃圾收集算法, 本课程不做介绍 7

8 65 堆管理 651 内存管理器 (memory manager) 内存管理器把握的基本信息是堆中空闲空间 分配函数 回收函数 内存管理器应具有下列性质 空间有效性 : 极小化程序需要的堆空间总量 程序有效性 : 较好地利用内存子系统, 使得程序能运行得快一些 低开销 : 分配和回收操作所花时间在整个程序执行时间中的比例尽量小 65 堆管理 652 计算机内存分层 (memory hierarchy) 典型大小 > 2 千兆字节 256 兆 2 千兆字节 128 千 4 兆字节 千字节 32 字 虚拟内存 ( 磁盘 ) 物理内存 2 级缓存 1 级缓存寄存器 ( 处理器 ) 典型访问时间 3 15 微秒 纳秒 纳秒 5 10 纳秒 1 纳秒 652 计算机内存分层 65 堆管理 现代计算机都设计成程序员不用关心内存子系统的细节就可以写出正确的程序 程序的效率不仅取决于被执行的指令数, 还取决于执行每条指令需要多长时间 执行一条指令的时间区别非常可观 差异源于硬件技术的基本局限 : 构造不了大容量的高速存储器 数据以块 ( 缓存行 页 ) 为单位在相邻层次之间进行传送 数据密集型程序可从恰当利用内存子系统中获益 65 堆管理 653 程序局部性 (locality in program) 大多数程序的大部分时间在执行一小部分代码, 并且仅涉及一小部分数据 时间局部性 (temporal locality) 程序访问的内存单元在很短的时间内可能再次被程序访问 空间局部性 (patial locality) 毗邻被访问单元的内存单元在很短的时间内可能被访问 653 程序局部性 65 堆管理 即使知道哪些指令会被频繁执行, 最快的缓存也可能没有大到足以把它们同时放在其中, 因此必须动态调整最快缓存的内容 把最近使用的指令保存在缓存是一种较好的最优化利用内存分层的策略 改变数据布局或计算次序也可以改进程序数据访问的时间和空间局部性 例 : 一个结构体大数组 truct tudent { int num; 65 堆管理 char name[20]; 分拆成若干个数组 int num[10000]; char name[10000][20]; truct tudent t[10000]; 若是顺序处理每个结构体的多个域, 左边方式的数据局部性较好 若是先顺序处理每个结构的 num 域, 再处理每个结构的 name 域,, 则右边方式的数据局部性较好 最好是按左边方式编程, 由编译器决定是否需要将数据按右边方式布局 8

9 65 堆管理 654 手工回收 (manual deallocation) 请求 程序员在程序中显式释放堆块来达到回收堆块的目的 内存泄漏 : 没有释放程序已经引用不到的堆块只要内存没有用尽, 它就不影响程序的正确性自动无用单元收集通过回收所有无用单元来摆脱内存泄漏 悬空引用 (dangling pointer): 引用已经被释放的堆块过分热心地释放数据对象而引起悬空引用容易导致不会被捕获的错误 本章要点 影响存储分配策略的语言特征 各种存储分配策略, 主要了解静态分配和动态栈式分配 活动记录中各种数据域的作用和布局 非局部数据访问的实现方法 各种参数传递方式及其实现 堆管理 例题 1 一个 C 语言程序及其在 X86/Linux 操作系统上的编译结果如下 根据所生成的汇编程序来解释程序中四个变量的存储分配 生存期 作用域和置初值方式等方面的区别 tatic long aa = 10; hort bb = 20; func( ) { tatic long cc = 30; hort dd = 40; tatic long aa = 10; func( ) { hort bb = 20; 例题 1tatic long cc = 30; hort dd = 40; data align 4 align 4 type cc2,@object type aa,@object ize cc2,4 ize aa,4 cc2: aa: long 30 long 10 text globl bb align 4 align 2 globl func type bb,@object func: ize bb,2 bb: movw $40,-2(%) value 20 tatic long aa = 10; func( ) { hort bb = 20; 例题 1tatic long cc = 30; hort dd = 40; data align 4 align 4 type cc2,@object type aa,@object ize cc2,4 ize aa,4 cc2: aa: long 30 long 10 text globl bb align 4 align 2 globl func type bb,@object func: ize bb,2 bb: movw $40,-2(%) value 20 tatic long aa = 10; func( ) { hort bb = 20; 例题 1tatic long cc = 30; hort dd = 40; data align 4 align 4 type cc2,@object type aa,@object ize cc2,4 ize aa,4 cc2: aa: long 30 long 10 text globl bb align 4 align 2 globl func type bb,@object func: ize bb,2 bb: movw $40,-2(%) value 20 9

10 tatic long aa = 10; func( ) { hort bb = 20; 例题 1tatic long cc = 30; hort dd = 40; data align 4 align 4 type cc2,@object type aa,@object ize cc2,4 ize aa,4 cc2: aa: long 30 long 10 text globl bb align 4 align 2 globl func type bb,@object func: ize bb,2 bb: movw $40,-2(%) value 20 tatic long aa = 10; func( ) { hort bb = 20; 例题 1tatic long cc = 30; hort dd = 40; data align 4 align 4 type cc2,@object type aa,@object ize cc2,4 ize aa,4 cc2: aa: long 30 long 10 text globl bb align 4 align 2 globl func type bb,@object func: ize bb,2 bb: movw $40,-2(%) value 20 tatic long aa = 10; func( ) { hort bb = 20; 例题 1tatic long cc = 30; hort dd = 40; data align 4 align 4 type cc2,@object type aa,@object ize cc2,4 ize aa,4 cc2: aa: long 30 long 10 text globl bb align 4 align 2 globl func type bb,@object func: ize bb,2 bb: movw $40,-2(%) value 20 func(i) { long j; j= i -1; func(j); puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 变量 j 控制链 低 addl $4,% 恢复栈顶指针返址栈 参数 i leave 即 mov, ; pop 高 puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 addl $4,% 恢复栈顶指针 leave 即 mov, ; pop 10

11 puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 addl $4,% 恢复栈顶指针 参数 i leave 即 mov, ; pop puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 addl $4,% 恢复栈顶指针返址 参数 i leave 即 mov, ; pop puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 控制链 addl $4,% 恢复栈顶指针返址 参数 i leave 即 mov, ; pop puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 控制链 addl $4,% 恢复栈顶指针返址 参数 i leave 即 mov, ; pop puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 变量 j 控制链 低 addl $4,% 恢复栈顶指针返址栈 参数 i leave 即 mov, ; pop 高 puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax 低 高 栈 变量 j 控制链返址 参数 i 调用序列之一调用序列之二 puhl %eax 把实参 j 的值压栈 addl $4,% 恢复栈顶指针 leave 即 mov, ; pop 11

12 puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax 低 高 栈 变量 j 控制链返址 参数 i 返回序列之一返回序列之二 puhl %eax 把实参 j 的值压栈 addl $4,% 恢复栈顶指针 leave 即 mov, ; pop 返回序列之一 返回序列之二 puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax 控制链返址 参数 i puhl %eax 把实参 j 的值压栈 addl $4,% 恢复栈顶指针 leave 即 mov, ; pop 返回序列之一返回序列之二 puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 addl $4,% 恢复栈顶指针返址 参数 i leave 即 mov, ; pop 返回序列之一返回序列之二 puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 addl $4,% 恢复栈顶指针 参数 i leave 即 mov, ; pop 返回序列之一 返回序列之二 puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 addl $4,% 恢复栈顶指针 leave 即 mov, ; pop 返回序列之一 返回序列之二 puhl % 老的基地址指针压栈 { movl %,% 修改基地址指针 long j; ubl $4,% 为 j 分配空间 j= i -1; movl 8(%),%edx 取 i 到寄存器 movl %edx,-4(%) i 1 j movl -4(%),%eax puhl %eax 把实参 j 的值压栈 addl $4,% 恢复栈顶指针 leave 即 mov, ; pop 12

13 例题 3 下面的程序运行时输出 3 个整数 试从运行环境和 printf 的实现来分析, 为什么此程序会有 3 个整数输出? main() { printf( %d, %d, %d\n ); main() { char *cp1, *cp2; 例题 4 cp1 = "12345"; cp2 = "abcdefghij"; trcpy(cp1,cp2); printf("cp1 = %\ncp2 = %\n", cp1, cp2); 在某些系统上的运行结果是 : cp1 = abcdefghij cp2 = ghij 为什么 cp2 所指的串被修改了? 例题 4 因为常量串 和 abcdefghij 连续分配在常数区执行前 : 12345\0abcdefghij\0 cp1 cp2 例题 4 因为常量串 和 abcdefghij 连续分配在常数区执行前 : 12345\0abcdefghij\0 cp1 cp2 执行后 : abcdefghij\0fghij\0 cp1 cp2 例题 4 因为常量串 和 abcdefghij 连续分配在常数区执行前 : 12345\0abcdefghij\0 cp1 cp2 执行后 : abcdefghij\0fghij\0 cp1 cp2 现在的编译器大都把程序中的串常量单独存放在只读数据段中因此运行时会报错 例题 5 func(i,j,f,e) hort i,j; float f,e; { hort i1,j1; float f1,e1; printf(&i,&j,&f,&e); printf(&i1,&j1,&f1,&e1); main() { hort i,j; float f,e; func(i,j,f,e); Addre of i,j,f,e = 36, 42, 44, 54( 八进制数 ) Addre of i1,j1,f1,e1 = 26, 24, 20, 14 13

14 例题 5 func(i,j,f,e) Size of hort, int, long, float, hort i,j; float f,e; double = 2, 4, 4, 4, 8 { ( 在 SPARC/SUN 工作站上 ) hort i1,j1; float f1,e1; printf(&i,&j,&f,&e); printf(&i1,&j1,&f1,&e1); main() { hort i,j; float f,e; func(i,j,f,e); Addre of i,j,f,e = 36, 42, 44, 54( 八进制数 ) Addre of i1,j1,f1,e1 = 26, 24, 20, 14 例题 5 func(i,j,f,e) Size of hort, int, long, float, hort i,j; float f,e; double = 2, 4, 4, 4, 8 { ( 在 SPARC/SUN 工作站上 ) hort i1,j1; float f1,e1; printf(&i,&j,&f,&e); printf(&i1,&j1,&f1,&e1); main() 为什么 4 个形式参数 i,j,f,e 的地址 { 间隔和它们类型的大小不一致 hort i,j; float f,e; func(i,j,f,e); Addre of i,j,f,e = 36, 42, 44, 54( 八进制数 ) Addre of i1,j1,f1,e1 = 26, 24, 20, 14 例题 5 当用传统的参数声明方式时, 编译器不检查实参和形参的个数和类型是否一致, 由程序员自己负责 但对形参和实参是不同的整型, 或不同的实型 - 编译器试图保证运行时能得到正确结果 - 条件是 : 若需数据类型转换时, 不出现溢出 编译器的做法 - 把整型或实型数据分别提升到 long 和 double 类型的数据, 再传递到被调用函数 - 被调用函数根据形参所声明的类型, 决定是否要将传来的实参向低级别类型转换 低地址放高位 例题 5 long hort 长整型和短整型 double float 双精度型和浮点型 高地址放低位 在 main 函数中参数压栈时的观点 栈的增长方向 i,4 个字节 j,4 个字节 f,8 个字节 e,8 个字节 例题 5 参数在栈中的情况 在 func 函数中存取形式参数时的观点 2 个字节, 起始地址 36 2 个字节, 起始地址 42 4 个字节, 起始地址 44 4 个字节, 起始地址 54 例题 6 下面程序为什么死循环 ( 在 SPARC/SUN 工作站上 )? main() { addr(); loop(); long *p; loop() { long i,j; j=0; for(i=0;i<10;i++){ (*p)--; j++; addr(){longk;k=0;p=&k; 14

15 例题 6 将 long *p 改成 hort *p,long k 改成 hort k 后, 循环体执行一次便停止, 为什么? main() { addr(); loop(); hort *p; loop() { long i,j; j=0; for(i=0;i<10;i++){ (*p)--; j++; addr() { hort k; k=0; p=&k; 例题 6 将 long *p 改成 hort *p,long k 改成 hort k 后, 循环体执行一次便停止, 为什么? main() { addr(); loop(); hort *p; 活动记录栈是从高向低方向增长 loop() long i { 低地址高地址 long i,j; 放高位放低位 j=0; hort k for(i=0;i<10;i++){ (*p)--; j++; addr() { hort k; k=0; p=&k; 例题 7 main() { func(); printf("return from func\n"); func() { char [4]; trcpy(," "); printf("%\n",); 在 X86/Linux 操作系统上的运行结果如下 : Return from func Segmentation fault (core dumped) 例题 7 main() { func(); printf("return from func\n"); func() { char [4]; trcpy(," "); printf("%\n",); 低 栈 变量 控制链返址 高 例题 7 main() { func(); printf("return from func\n"); func() { char [4]; trcpy(," "); 低 printf("%\n",); 栈 高 Segmentation fault (core dumped) 变量 控制链返址 例题 8 int fact(i) main() int i; { { printf("%d\n", fact(5)); if(i==0) printf("%d\n", fact(5,10,15)); return 1; printf("%d\n", fact(50)); ele printf("%d\n", fact()); return i*fact(i-1); 该程序在 X86/Linux 机器上的运行结果如下 : Segmentation fault (core dumped) 15

16 例题 8 请解释下面问题 : 第二个 fact 调用 : 结果为什么没有受参数过多的影响? 第三个 fact 调用 : 为什么用浮点数 50 作为参数时结果变成 1? 第四个 fact 调用 : 为什么没有提供参数时会出现 Segmentation fault? 例题 8 请解释下面问题 : 第二个 fact 调用 : 结果为什么没有受参数过多的影响? 解答 : 参数表达式逆序计算并进栈,fact 能够取到第一个参数 例题 8 请解释下面问题 : 第三个 fact 调用 : 为什么用浮点数 50 作为参数时结果变成 1? 例题 8 请解释下面问题 : 第四个 fact 调用 : 为什么没有提供参数时会出现 Segmentation fault? 解答 : 参数 50 转换成双精度数进栈, 占 8 个字节它低地址的 4 个字节看成整数时正好是 0 低栈高 局部变量控制链返址 参数 解答 : 由于没有提供参数, 而 main 函数又无局部变量, fact 把老 ( 控制链 ) (main 的活动记录中保存的 ) 当成参数, 它一定是一个很大的整数, 使得活动记录栈溢出 低 高 栈 局部变量控制链返址 控制链 16

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

修改图 7.5 中计算声明名字的类型和相对地址的翻译方案, 允许名字表而不是单个名字出现在形式为 D id : T 的声明中 即允许 a, b, c : integer 这种形式的变量声明 下面是一个 C 语言程序 : long f1( i

修改图 7.5 中计算声明名字的类型和相对地址的翻译方案, 允许名字表而不是单个名字出现在形式为 D id : T 的声明中 即允许 a, b, c : integer 这种形式的变量声明 下面是一个 C 语言程序 : long f1( i 2013.12.8 7.4 修改图 7.5 中计算声明名字的类型和相对地址的翻译方案, 允许名字表而不是单个名字出现在形式为 D id : T 的声明中 即允许 a, b, c : integer 这种形式的变量声明 2013.12.1 6.12 下面是一个 C 语言程序 : long f1( i ) long i; { return(i 10); long f2(long i) { return(i

More information

第一次段考 二年級社會領域試題 郭玉華 (A)(B) (C)(D)

第一次段考   二年級社會領域試題 郭玉華   (A)(B) (C)(D) 五 福 二 社 p1 高 雄 市 立 五 福 國 民 中 學 97 學 年 度 第 1 學 期 第 1 次 段 考 二 年 級 社 會 學 習 領 域 試 題 卷 代 號 :30 答 案 卡 塗 寫 注 意 事 項 1. 答 案 卡 劃 記 時, 必 須 用 黑 色 2B 鉛 筆 塗 黑 塗 滿, 但 不 可 超 出 圈 外 2. 年 班 級 座 號 科 目 請 劃 記 正 確 若 劃 記 錯 誤,

More information

(E). (A) (B) (C) (D) (E). (A) (B) (C) (D) (E) (A) (B) (C) (D) (E) (A) (B) (C) (D). ( ) ( ) ( ) ( ) ( ) ( ) (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (

(E). (A) (B) (C) (D) (E). (A) (B) (C) (D) (E) (A) (B) (C) (D) (E) (A) (B) (C) (D). ( ) ( ) ( ) ( ) ( ) ( ) (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). ( . (A) (B) (C) (D) (E). ( ) ( ) ( ) ( ) ( ) ( ) (A) (B) (C) (D) (E) (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). 1950 (A) (B) (C) (D) (E). 60 70 (A) (B) (C) (D) (E). ( ) ( ) ( ) ( ) (

More information

C++ 程式設計

C++ 程式設計 C C 料, 數, - 列 串 理 列 main 數串列 什 pointer) 數, 數, 數 數 省 不 不, 數 (1) 數, 不 數 * 料 * 數 int *int_ptr; char *ch_ptr; float *float_ptr; double *double_ptr; 數 (2) int i=3; int *ptr; ptr=&i; 1000 1012 ptr 數, 數 1004

More information

工 序 的 是 ( ) A. 卷 筒 切 筒 装 药 造 粒 B. 搬 运 造 粒 切 引 装 药 C. 造 粒 切 引 包 装 检 验 D. 切 引 包 装 检 验 运 输 7. 甲 公 司 将 其 实 施 工 项 目 发 包 给 乙 公 司, 乙 公 司 将 其 中 部 分 业 务 分 包 给

工 序 的 是 ( ) A. 卷 筒 切 筒 装 药 造 粒 B. 搬 运 造 粒 切 引 装 药 C. 造 粒 切 引 包 装 检 验 D. 切 引 包 装 检 验 运 输 7. 甲 公 司 将 其 实 施 工 项 目 发 包 给 乙 公 司, 乙 公 司 将 其 中 部 分 业 务 分 包 给 2013 年 安 全 工 程 师 法 律 知 识 答 案 解 析 一 单 选 择 题 1. 某 省 人 大 常 务 委 员 会 公 布 实 施 了 某 省 安 全 生 产 条 例, 随 后 省 政 府 公 布 实 施 了 某 省 生 产 经 营 单 位 安 全 生 产 主 体 责 任 规 定, 下 列 关 于 两 者 法 律 地 位 和 效 力 的 说 法, 正 确 的 是 ( ) A. 某 省 安

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

(A)3 4 (B)5 6 (C)7 9 (D)10 2 (E) (A) (B) (C) (D) (E) ( ) ( ) ( ) (A) (B) (C) (D) (E) (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (A) (B) (C) (D) (

(A)3 4 (B)5 6 (C)7 9 (D)10 2 (E) (A) (B) (C) (D) (E) ( ) ( ) ( ) (A) (B) (C) (D) (E) (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (A) (B) (C) (D) ( . (A) (B) (C) (D) (E). (A) (B) (C) (D) (E) (A) (B) (C) (D) (E) (A) (B) (C) (D) (E).. (E) (A) (B) (C) (D). (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (A) (B) (C) (D) (E) (A) (C) (D) (E) (A) (B) (C) (D) (E)

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

PowerPoint Presentation

PowerPoint Presentation 第七章运行时刻环境 许畅 南京大学计算机系 2018 年春季 运行时刻环境 运行时刻环境 为数据分配安排存储位置 确定访问变量时使用的机制 过程之间的连接 参数传递 和操作系统 输入输出设备相关的其它接口 主题 存储管理 : 栈分配 堆管理 垃圾回收 对变量 数据的访问 2 存储分配的典型方式 目标程序的代码放置在代码区 静态区 堆区 栈区分别放置不同类型生命期的数据值 3 静态和动态存储分配 静态分配

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

碩命題橫式

碩命題橫式 一 解釋名詞 :(50%) 1. Two s complement of an integer in binary 2. Arithmetic right shift of a signed integer 3. Pipelining in instruction execution 4. Highest and lowest layers in the TCP/IP protocol suite

More information

没有幻灯片标题

没有幻灯片标题 指针作为函数参数 : 原因 : 1 需要修改一个或多个值,( 用 return 语句不能解决问题 ) 2 执行效率的角度 使用方法 : 在函数原型以及函数首部中需要声明能够接受指针值的形参, 具体的写法为 : 数据类型 * 形参名 如果有多个指针型形参, 则用逗号分隔, 例如 : void swap(int *p1, int *p2) 它说明了形参 p1 p2 是指向整型变量的指针 在函数调用时,

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

农银人寿发[2013]102号-4 农银寰宇至尊高端医疗保险条款

农银人寿发[2013]102号-4 农银寰宇至尊高端医疗保险条款 农 银 人 寿 [2013] 医 疗 保 险 004 号 请 扫 描 以 查 询 验 证 条 款 农 银 寰 宇 至 尊 高 端 医 疗 保 险 条 款 阅 读 指 引 本 阅 读 指 引 有 助 于 您 理 解 条 款, 对... 本 主 险 合 同... 内 容 的 解 释 以 条 款 为 准... C 您 拥 有 的 重 要 权 益 v 本 主 险 合 同 提 供 的 保 障 第 二 章 v

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac)

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) 复习 面向对象编程 将实际问题分解成不同的对象 不的对象提供不同的服务 对象之间可以传递消息 例子小李深夜

More information

頁 次 :5-2 D 21. 關 於 定 型 化 契 約 之 敘 述, 何 者 是 錯 誤 的? (A) 通 常 由 企 業 經 營 者 單 方 預 先 擬 定 (B) 目 的 在 於 以 該 條 款 與 不 特 定 多 數 相 對 人 訂 約, 以 節 省 時 間 與 費 用 (C) 契 約 雙

頁 次 :5-2 D 21. 關 於 定 型 化 契 約 之 敘 述, 何 者 是 錯 誤 的? (A) 通 常 由 企 業 經 營 者 單 方 預 先 擬 定 (B) 目 的 在 於 以 該 條 款 與 不 特 定 多 數 相 對 人 訂 約, 以 節 省 時 間 與 費 用 (C) 契 約 雙 頁 次 :5-1 九 十 五 年 度 就 業 服 務 專 業 人 員 測 驗 試 題 測 驗 科 目 : 專 業 理 論 考 試 時 間 :90 分 鐘 姓 名 : 准 考 證 號 碼 : 注 意 : 本 試 題 為 單 一 選 擇 題, 請 選 出 一 個 正 確 或 最 適 當 的 答 案, 複 選 作 答 者, 該 題 不 予 計 分 本 科 目 共 100 題, 每 題 1 分, 須 用 2

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double

More information

頁 次 :6-2 (B) 19. 主 要 是 處 理 案 主 非 理 性 的 思 考 過 程 屬 於 那 一 種 諮 商 理 論 的 派 別? (A) 行 為 理 論 (B) 認 知 行 為 理 論 (C) 現 實 治 療 (D) 心 理 分 析 (C) 20. 一 位 結 婚 數 年 的 太 太

頁 次 :6-2 (B) 19. 主 要 是 處 理 案 主 非 理 性 的 思 考 過 程 屬 於 那 一 種 諮 商 理 論 的 派 別? (A) 行 為 理 論 (B) 認 知 行 為 理 論 (C) 現 實 治 療 (D) 心 理 分 析 (C) 20. 一 位 結 婚 數 年 的 太 太 頁 次 :6-1 九 十 五 年 度 就 業 服 務 專 業 人 員 測 驗 試 題 測 驗 科 目 : 專 業 理 論 考 試 時 間 :90 分 鐘 姓 名 : 准 考 證 號 碼 : 注 意 : 本 試 題 為 單 一 選 擇 題, 請 選 出 一 個 正 確 或 最 適 當 的 答 案, 複 選 作 答 者, 該 題 不 予 計 分 本 科 目 共 100 題, 每 題 1 分, 須 用 2B

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

C C

C C C C 2017 3 8 1. 2. 3. 4. char 5. 2/101 C 1. 3/101 C C = 5 (F 32). 9 F C 4/101 C 1 // fal2cel.c: Convert Fah temperature to Cel temperature 2 #include 3 int main(void) 4 { 5 float fah, cel; 6 printf("please

More information

untitled

untitled CHAPTER 02 2 CHAPTER 2-1 2-4 2-2 2-5 2-3 2-6 2-1 2-1-1 2-2 02 int A[3] = {10, 20, 30; A[0] 10 A[1] 20 A[2] 30 int *pa[3], A[3]; C 3 pa pa[0]pa[1]pa[2] 3 A A[0]A[1]A[2] 3 A A[0] A + i A[i] A + i &A[i]*(A

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un Linux C July 27, 2016 Contents 1 Linux IDE 1 2 GCC 3 2.1 hello.c hello.exe........................... 5 2.2............................... 9 2.2.1 -Wall................................ 9 2.2.2 -E..................................

More information

网C试题(08上).doc

网C试题(08上).doc 学习中心 姓名 学号 西安电子科技大学网络与继续教育学院 高级语言程序设计 (C) 全真试题 ( 闭卷 90 分钟 ) 题号一二三总分 题分 60 20 20 得分 一 单项选择题 ( 每小题 3 分, 共 60 分 ) 1.C 语言程序的基本单位是 A) 程序行 B) 语句 C) 函数 D) 字符 2. 下列四组选项中, 均是不合法的用户标识符的选项是 A)A B)getc C)include D)while

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i;

More information

但 洋 糖 最 终 乘 船 溯 江 而 上, 再 加 上 民 国 初 年 至 抗 战 前 夕 二 十 余 年 间, 四 川 接 连 不 断 遭 受 水 灾 旱 灾 地 震, 平 均 每 月 爆 发 两 次 军 阀 混 战, 乡 村 遭 受 极 大 破 坏,( 赵 泉 民,2007) 农 村 经 济

但 洋 糖 最 终 乘 船 溯 江 而 上, 再 加 上 民 国 初 年 至 抗 战 前 夕 二 十 余 年 间, 四 川 接 连 不 断 遭 受 水 灾 旱 灾 地 震, 平 均 每 月 爆 发 两 次 军 阀 混 战, 乡 村 遭 受 极 大 破 坏,( 赵 泉 民,2007) 农 村 经 济 原 载 黄 宗 智 主 编 : 中 国 乡 村 研 究 ( 第 八 辑 ), 福 州 : 福 建 教 育 出 版 社 2010 年 4 月 第 一 版, 第 196-241 页 北 京 联 合 大 学 李 安 平 抗 战 时 期 四 川 内 江 农 贷 个 案 研 究 摘 要 : 抗 日 战 争 时 期 四 川 内 江 蔗 农 在 承 受 高 利 贷 盘 剥 的 严 酷 境 遇 中, 利 用 中 国

More information

36 2013 6 29 2012 10 24 2012 12 1 93 1998 10 25 94 95 2001 12 12 96 2007 4 15 97 (1) 200.0 50.0 100.0 500.0 98 49% 5% 20% 25% 25% 25% 25% H 598,100,000 H 59,810,000 657,910,000 H 25.0% 10 2010 9 19 5%

More information

Book1

Book1 經 辦 網 點 名 稱 網 點 位 址 第 一 支 行 營 業 室 廣 東 省 廣 州 市 越 秀 區 沿 江 中 路 193 號 第 二 支 行 營 業 室 廣 東 省 廣 州 市 沿 江 西 路 145 號 吉 祥 支 行 廣 東 省 廣 州 市 東 風 中 路 313 號 荔 灣 支 行 營 業 室 廣 東 省 廣 州 市 荔 灣 區 南 岸 路 63 號 三 樓 北 京 路 支 行 營 業

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

. (B) (C) (D) (E). ( ) ( ) ( ) ( ) ( ) X Y (A) (B) (C) (D) (E) X Y X Y (A) (B) (C) (D) (E). (A) (B) (C) (D) (1) (2) (3). (A) (B) (C) (D) (E) (A) (B) (

. (B) (C) (D) (E). ( ) ( ) ( ) ( ) ( ) X Y (A) (B) (C) (D) (E) X Y X Y (A) (B) (C) (D) (E). (A) (B) (C) (D) (1) (2) (3). (A) (B) (C) (D) (E) (A) (B) ( . (A) (B) (C) (D) (B) (C) (D) (E) K 93 (A) (B) (C) (D) (E) (A) (B) (C) (D) (E) (A) (B) (C) (D) (E) (A) (B) (C) (D) (E) (B) (C) (D) (E). ( ) ( ) ( ) (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (A) (B) (C)

More information

Microsoft PowerPoint - 3. 函数Functionl.ppt [兼容模式]

Microsoft PowerPoint - 3. 函数Functionl.ppt [兼容模式] 函数 Function 如何重用代码 How to reuse code 3 4 = 3*3*3*3 3 4,6 5 : 拷贝 - 粘帖代码 (Copy-paste code) 3 4,6 5,12 10 : 拷贝 - 粘帖代码 (Copy-paste code) Bad! 使用函数 (with a function) 使用函数 (with a function) 使用函数 (with a function)

More information

附件1-1

附件1-1 學 校 名 稱 : 臺 中 市 南 屯 區 黎 明 國 民 小 學 方 案 名 稱 : 學 習 的 源 頭 活 水 ~ 圖 書 教 師 計 畫 壹 前 言 ~ 黎 明 教 閱 讀 半 畝 方 塘 一 鑑 開 天 光 雲 影 共 徘 徊 問 渠 哪 得 清 如 許 為 有 源 頭 活 水 來 宋 朝 朱 熹 < 觀 書 有 感 > 本 校 自 99 學 年 度 起 連 續 申 請 教 育 部 試 辦

More information

C/C++ 语言 - 循环

C/C++ 语言 - 循环 C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf

More information

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 1 CARDGAME 1 CardGame 题目描述 桌上有一叠牌, 从第一张牌 ( 即位于顶面的牌 ) 开始从上往下依次编号为 1~n 当至少还剩两张牌时进行以下操作 : 把第一张牌扔掉, 然后把新的第一张放到整叠牌的最后 请模拟这个过程, 依次输出每次扔掉的牌以及最后剩下的牌的编号 输入 输入正整数 n(n

More information

C

C C 2017 4 1 1. 2. while 3. 4. 5. for 6. 2/161 C 7. 8. (do while) 9. 10. (nested loop) 11. 12. 3/161 C 1. I 1 // summing.c: 2 #include 3 int main(void) 4 { 5 long num; 6 long sum = 0L; 7 int status;

More information

Ctpu

Ctpu 二 委 任 出 席 安 全 理 事 会 的 代 表 副 代 表 候 补 代 表 和 代 理 代 表 2010 年 8 月 1 日 至 2011 年 7 月 31 日 期 间 委 任 出 席 安 全 理 事 会 的 代 表 副 代 表 候 补 代 表 和 代 理 代 表 如 下 : * 奥 地 利 海 因 茨 菲 舍 尔 先 生 ( 奥 地 利 联 邦 总 统 ) 米 夏 埃 尔 施 平 德 埃 格

More information

untitled

untitled 不 料 料 例 : ( 料 ) 串 度 8 年 數 串 度 4 串 度 數 數 9- ( ) 利 數 struct { ; ; 數 struct 數 ; 9-2 數 利 數 C struct 數 ; C++ 數 ; struct 省略 9-3 例 ( 料 例 ) struct people{ char name[]; int age; char address[4]; char phone[]; int

More information

15XSSC.FIT)

15XSSC.FIT) 学 生 手 册 学 生 工 作 部 ( 处 ) 汇 编 教 务 处 二 一 五 年 九 月 各 位 同 学 : 翻 开 这 一 页, 预 示 着 你 们 崭 新 的 大 学 生 活 开 始 了 学 生 手 册 涵 盖 了 教 学 管 理 与 事 务 等 诸 多 规 定, 它 将 是 你 们 成 长 成 才 的 制 度 保 障 与 服 务 导 航 请 务 必 认 真 阅 读 并 领 会 本 手 册

More information

馬偕醫學院 學生事務工作簡報

馬偕醫學院 學生事務工作簡報 馬 偕 醫 學 院 總 務 處 簡 介 報 告 人 申 永 順 總 務 長 總 務 處 織 與 成 員 許 鎂 秀 曾 柏 壽 楊 嘉 華 吳 俊 仲 內 容 校 園 環 境 生 活 機 能 二 期 工 程 配 合 事 項 馬 偕 醫 學 院 一 期 校 園 簡 介 網 球 場 籃 / 排 球 場 三 芝 區 市 中 心 教 學 大 樓 5C 聯 合 行 政 辦 公 區 A 區 B 區 C 區 藝

More information

c_cpp

c_cpp C C++ C C++ C++ (object oriented) C C++.cpp C C++ C C++ : for (int i=0;i

More information

Microsoft Word - 澎湖田調報告_璉謙組.doc

Microsoft Word - 澎湖田調報告_璉謙組.doc 越 籍 新 住 民 妊 娠 醫 療 照 護 : 訪 談 李 亞 梅 女 士 組 長 : 郭 璉 謙 成 大 中 文 所 博 二 組 員 : 阮 壽 德 成 大 中 文 所 博 一 黃 榆 惠 成 大 中 文 所 碩 一 許 愷 容 成 大 中 文 所 碩 一 何 珍 儀 成 大 中 文 所 碩 一 指 導 老 師 : 陳 益 源 教 授 前 言 2009 年 03 月 21 日, 下 午 2 時 30

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

第七期

第七期 第 八 期 总 第 65 期 天 津 交 通 职 业 学 院 职 业 教 育 研 究 所 主 办 2013 年 11 月 25 日 吴 宗 保 院 长 率 队 参 加 第 五 届 全 国 职 业 院 校 物 流 专 业 教 学 研 讨 会 第 五 届 全 国 职 业 院 校 物 流 专 业 教 学 研 讨 会 于 2013 年 10 月 19 日 在 福 建 省 厦 门 市 召 开 吴 宗 保 院

More information

( )1

(   )1 ( )1. 如 圖 為 某 生 物 細 胞 行 減 數 分 裂 過 程 之 一, 正 常 情 況 下, 分 裂 完 成 後 子 細 胞 染 色 體 為 下 列 何 者? ( )2. 在 細 胞 的 分 裂 過 程 中,50 個 精 母 細 胞 與 50 個 卵 母 細 胞, 經 減 數 分 裂 後, 分 別 產 生 M 個 成 熟 的 精 配 子 細 胞 和 N 個 成 熟 的 卵 配 子 細 胞

More information

<4D6963726F736F667420576F7264202D20A1BE3230313630373237A1BF32303136C4EABDADCBD5D7CFBDF0C5A9B4E5C9CCD2B5D2F8D0D0B9C9B7DDD3D0CFDEB9ABCBBEB8FAD7D9C6C0BCB6B1A8B8E6A3A8B8FAD7D93230313630373237A3A9>

<4D6963726F736F667420576F7264202D20A1BE3230313630373237A1BF32303136C4EABDADCBD5D7CFBDF0C5A9B4E5C9CCD2B5D2F8D0D0B9C9B7DDD3D0CFDEB9ABCBBEB8FAD7D9C6C0BCB6B1A8B8E6A3A8B8FAD7D93230313630373237A3A9> 优 化 组 织 架 构, 提 升 管 控 效 率 ; 总 行 参 与 贷 款 调 查, 控 制 信 贷 风 险 2015 年 底, 紫 金 农 商 银 行 为 适 应 经 营 发 展 需 要, 对 组 织 架 构 和 内 设 机 构 进 行 了 部 分 调 整, 新 设 立 了 金 融 同 业 部 和 七 个 部 门 内 设 中 心, 分 别 为 : 个 人 存 款 管 理 中 心 和 零 售 业

More information

ebook14-4

ebook14-4 4 TINY LL(1) First F o l l o w t o p - d o w n 3 3. 3 backtracking parser predictive parser recursive-descent parsing L L ( 1 ) LL(1) parsing L L ( 1 ) L L ( 1 ) 1 L 2 L 1 L L ( k ) k L L ( 1 ) F i r s

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

C/C++ - 数组与指针

C/C++ - 数组与指针 C/C++ Table of contents 1. 2. 3. 4. 5. 6. 7. 8. 1 float candy [ 365]; char code [12]; int states [50]; 2 int array [6] = {1, 2, 4, 6, 8, 10}; 3 // day_mon1.c: # include # define MONTHS 12 int

More information

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer)

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer) 1/14 IBM Rational Test RealTime IBM, 2004 7 01 50% IBM Rational Test RealTime IBM Rational Test RealTime 1. 50% IBM Rational Test RealTime IBM Rational Test RealTime 2. IBM Rational Test RealTime Test

More information

64 [ 46 ] (p297) 1924 :? [ 47 ] (p570) ; ; ; ; ; ; ; ; ; ; ; [ 11 ]; [ 35 ] [ 49 ] [ 32 ] ( ) [ 48 ] (p 425) [ 50 ] (p 670 6

64 [ 46 ] (p297) 1924 :? [ 47 ] (p570) ; ; ; ; ; ; ; ; ; ; ; [ 11 ]; [ 35 ] [ 49 ] [ 32 ] ( ) [ 48 ] (p 425) [ 50 ] (p 670 6 63 2002 7 ( ) ( 100871) [ ] K262. 81g. 82 [ ] A [ ] 058320214 (2002) 0720063211 ; [ 44 ] (p 202) 12 : ; ; ; : [ 42 ] (p 129 216) [ 11 ] [ 32 ] (1926 11 19 ) 1927 ( ) ; [ 45 ] (p108) [ 43 ] (p 5142515 5222523)

More information

用户大会 论文集2.2.doc

用户大会 论文集2.2.doc MagGis MapGis GIS MagGis API DLL MapGis VC++ VB BC++ Delphi., Windows API MapGis VC++V Delphi Delphi Delphi MapGis Delphi Delphi Windows Delphi Delphi MapGis MapGis DLL API MapGis function _InitWorkArea(HINST:Integer):Integer;

More information

2010年江西公务员考试行测真题

2010年江西公务员考试行测真题 2010 年 江 西 省 公 务 员 录 用 考 试 行 政 职 业 能 力 测 验 真 题 说 明 这 项 测 验 共 有 五 个 部 分,135 道 题, 总 时 限 120 分 钟 各 部 分 不 分 别 计 时, 但 都 给 出 了 参 考 时 限, 供 以 参 考 以 分 配 时 间 请 在 机 读 答 题 卡 上 严 格 按 照 要 求 填 写 好 自 己 的 姓 名 报 考 部 门,

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

instructions.PDF

instructions.PDF 94 SIMATIC (END) (END) Micro/WIN 32 (STOP) (STOP) CPU RUN STOP STOP CPU RUN STOP (WDR) (Watchdog Reset) (WDR) CPU WDR WDR ( ) I/O ( I/O ) SM (SM0 SM5 SM29 ) 25 0 ms 00 ms STOP 300ms 300ms WDR S7-200 CPU

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc 2 5 8 11 0 1. 13 2. 15 3. 18 1 1. 22 2. 25 3. 27 2 1. 35 2. 38 3. 41 4. 43 5. 48 6. 50 3 1. 56 2. 59 3. 63 4. 65 5. 69 13 22 35 56 6. 74 7. 82 8. 84 9. 87 10. 97 11. 102 12. 107 13. 111 4 114 1. 114 2.

More information

45 18 A4~A13 47 45 2 19 20 21 -DAY 1 3 3 A13 35.3 39%

45 18 A4~A13 47 45 2 19 20 21 -DAY 1 3 3 A13 35.3 39% 1 21 0982291 0982285 0982321 0982324 0982327 0982287 19 20 21 21 (1~19 ) 37.5~37.7 (20~21 ) 36.1~37.2 (1~19 ) 55~60% (20~21 ) 70~75% 45 18 A4~A13 47 45 2 19 20 21 -DAY 1 3 3 A13 35.3 39% -DAY 2 3 3 A12

More information

bnb.PDF

bnb.PDF 2003 1 39 2003 2 39 2003 3 39 2003 M 4 39 2003 5 39 2003 6 39 2003 7 39 2 4 2003 8 39 2003 2002 11 22 D05D06 4,708,777.00 9 39 2003 18 10 39 2003 11 39 2003 [2003]A271 2003 6 30 2003 1-6 2003 1-6 2003

More information

untitled

untitled 1 5 IBM Intel 1. IBM 第 1/175 页 第 2/175 页 第 3/175 页 80 第 4/175 页 2. IBM 第 5/175 页 3. (1) 第 6/175 页 第 7/175 页 第 8/175 页 = = 第 9/175 页 = = = = = 第 10/175 页 = = = = = = = = 3. (2) 第 11/175 页 第 12/175 页 第 13/175

More information

第5章修改稿

第5章修改稿 (Programming Language), ok,, if then else,(), ()() 5.0 5.0.0, (Variable Declaration) var x : T x, T, x,,,, var x : T P = x, x' : T P P, () var x:t P,,, yz, var x : int x:=2. y := x+z = x, x' : int x' =2

More information

. (A) (B) (C) A (D) (E). (A)(B)(C)(D)(E) A

. (A) (B) (C) A (D) (E). (A)(B)(C)(D)(E) A . () () () () () (A) (B) (C) B (D) (E). (A) (B) (C) E (D) (E) (A) (B) (C) (D). () () () () E (A) (B) (C) (D) (E). C (A) (B) (C) (D) (E). (A) (B) (C) (D) D (E). () - () - () - () - () - D (A) (B) (C) (D)

More information

ROP_bamboofox.key

ROP_bamboofox.key ROP Return Oriented Programming Lays @ BambooFox Who Am I Lays / L4ys / 累死 - l4ys.tw Reverse Engineering BambooFox / HITCON Outline Buffer Overflow ret2libc / ret2text Return Oriented Programming Payload

More information

Microsoft PowerPoint - 9-RuntimeSystem12.ppt [兼容模式]

Microsoft PowerPoint - 9-RuntimeSystem12.ppt [兼容模式] 第九章 运行时存储空间组织 运行时存储空间组织 ( 续 ) In computer science, the runtime system is software that provides services for a running program but is itself not considered to be part of the operating system. Examples

More information

山东建筑大学学分制管理规定(试行)

山东建筑大学学分制管理规定(试行) 山 建 大 校 字 2015 67 号 山 东 建 筑 大 学 关 于 印 发 学 分 制 管 理 规 定 ( 试 行 ) 的 通 知 各 院 部 校 直 各 部 门 : 山 东 建 筑 大 学 学 分 制 管 理 规 定 ( 试 行 ) 已 经 学 校 研 究 同 意, 现 印 发 给 你 们, 请 认 真 遵 照 执 行 山 东 建 筑 大 学 2015 年 8 月 7 日 1 山 东 建 筑

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 9 [P.11] : Dev C++ [P.12] : http://c.feis.tw [P.13] [P.14] [P.15] [P.17] [P.23] Dev C++ [P.24] [P.27] [P.34] C / C++ [P.35] 10 C / C++ C C++ C C++ C++ C ( ) C++

More information

2,300 4,17931.7% - 44 -

2,300 4,17931.7% - 44 - [ ][ ] [ ]171,151 80080 B2B15 250-43 - 2,300 4,17931.7% - 44 - 0.9% 500.0 400.0 300.0 200.0 100.0 24.7% 24.0% 0.0-45 - 4 8,500-46 - 1,202,200,00027.9% 13.0% 2,425,500,000 15.1% 3000.0 2500.0 2000.0 10.6%

More information

里 再 说 吓 唬 了 孩 子, 肯 定 方 宁 不 忍 所 以 她 不 死 便 罢, 倘 若 死, 只 有 到 办 公 室 沈 若 鱼 冷 静 得 好 像 在 评 点 某 一 电 视 剧 中 的 女 主 角 你 说 她 是 怎 么 死 的? 先 生 又 感 惊 骇 吃 安 眠 药 沈 若 鱼 成

里 再 说 吓 唬 了 孩 子, 肯 定 方 宁 不 忍 所 以 她 不 死 便 罢, 倘 若 死, 只 有 到 办 公 室 沈 若 鱼 冷 静 得 好 像 在 评 点 某 一 电 视 剧 中 的 女 主 角 你 说 她 是 怎 么 死 的? 先 生 又 感 惊 骇 吃 安 眠 药 沈 若 鱼 成 沈 若 鱼 和 母 亲 自 南 方 旅 游 归 来 时, 晒 得 像 一 段 黑 檀 木 先 生 到 机 场 接 她 们, 小 心 翼 翼 好 像 母 女 俩 是 砍 开 的 半 个 椰 子, 一 碰 就 会 汁 液 横 流 本 想 把 母 亲 接 到 自 家, 但 老 人 坚 持 回 干 休 所 送 母 亲 回 去 安 歇 后, 先 生 的 精 神 才 舒 缓 一 些 告 诉 你 一 件 事, 可

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

<4D F736F F D20CAB5D1E BACDBBE3B1E0D3EFD1D4B5C4BBECBACFB1E0B3CCCAB5D1E92E646F63>

<4D F736F F D20CAB5D1E BACDBBE3B1E0D3EFD1D4B5C4BBECBACFB1E0B3CCCAB5D1E92E646F63> 1 实验目的 实验 2 C 和汇编语言的混合编程实验 学习在 C 程序中使用嵌入式汇编编写程序 了解嵌入式汇编的格式 语言特点 2 实验设备 S3C2410 开发板 ADS1.2 集成开发环境,JTAG 调试器 串口连接线 3 实验原理 在 ARM 的应用开发中,C 语言功能强大且容易编写程序, 但是汇编程序在底层的操作仍然具有 C 程序无法替代的功能, 有时候我们需要在 C 程序中嵌入汇编程序来完成一些直接对底层的诸如寄存器的操作

More information

untitled

untitled 2016 148 1 8 7 08:00 16:00 http://zj.sceea.cn www.sceea.cn APP 1 2 2 6 6 2016 2016 8 6 3 2016 2016 2016 0366 1 03 1 0391 2 54 ( ) 2 1256 7 02 1 03 1 07 2 18 2 21 1 1314 1 36 1 14000 / 20 1316 7 00 1 09

More information

栏目:前沿

栏目:前沿 AMT 咨 询 : 高 效 执 行, 快 消 品 企 业 的 制 胜 之 道 2010 年 快 消 品 行 业 企 业 高 效 执 行 力 报 告 作 者 :AMT 研 究 院 当 前 国 内 快 速 消 费 品 市 场 形 势 日 渐 严 峻, 金 融 危 机 对 国 内 快 消 品 行 业 产 生 不 良 影 响, 行 业 内 部 市 场 竞 争 加 剧, 通 货 膨 胀 导 致 消 费 者 购

More information

epub 33-8

epub 33-8 8 1) 2) 3) A S C I I 4 C I / O I / 8.1 8.1.1 1. ANSI C F I L E s t d i o. h typedef struct i n t _ f d ; i n t _ c l e f t ; i n t _ m o d e ; c h a r *_ n e x t ; char *_buff; /* /* /* /* /* 1 5 4 C FILE

More information

第7章-并行计算.ppt

第7章-并行计算.ppt EFEP90 10CDMP3 CD t 0 t 0 To pull a bigger wagon, it is easier to add more oxen than to grow a gigantic ox 10t 0 t 0 n p Ts Tp if E(n, p) < 1 p, then T (n) < T (n, p) s p S(n,p) = p : f(x)=sin(cos(x))

More information

第一章

第一章 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1500 1450 1400 1350 1300 1250 1200 15 16 17 18 19 20 21 22 23 24 25 26 27 28 INPUT2006 29 30 31 32 33 34 35 9000 8500 8000 7500 7000 6500 6000 5500 5000 4500 4000 3500

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

便 箋

便 箋 通 函 發 文 人 : 選 舉 事 務 處 總 選 舉 事 務 主 任 受 文 人 : 各 常 任 秘 書 長 及 部 門 首 長 檔 號 : R E O/RT/87/ 30/1 電 話 : 2 8 91 4407 傳 真 : 2 2 46 0728 日 期 : 二 零 一 五 年 三 月 十 六 日 二 零 一 五 年 區 議 會 選 舉 招 募 選 舉 工 作 人 員 目 的 本 通 函 邀 請

More information

(Microsoft Word - \262\30440\266g-\253\312\255\261.doc)

(Microsoft Word - \262\30440\266g-\253\312\255\261.doc) 駐 堂 牧 師 : 陳 文 欽 主 任 牧 師 大 安 週 報 2016 10 月 洪 崇 錦 傳 道 2 日 你 們 要 向 耶 和 華 唱 新 歌! 全 地 都 要 向 耶 和 華 歌 唱! 要 向 耶 和 華 歌 唱, 稱 頌 祂 的 名! 天 天 傳 揚 祂 的 救 恩! 在 列 邦 中 述 說 祂 的 榮 耀! ( 第 40 主 日 ) 在 萬 民 中 述 說 祂 的 奇 事! - 詩 篇

More information

書本介紹

書本介紹 班 級 經 營 期 末 報 告 組 員 : 幼 三 甲 4A0I0030 蔡 依 璇 4A0I0048 蘇 家 儀 4A0I0096 張 容 嫣 4A0I0098 袁 少 潔 書 本 介 紹 閱 讀 對 象 : 小 學 低 年 級 的 老 師 新 生 家 長 有 意 從 事 小 學 者 及 關 心 教 育 品 質 的 社 會 人 士 內 容 : 1. 教 師 如 何 成 功 有 效 地 經 營 低

More information

Microsoft Word - 100-05-23--養生與保健_中山大學_講義

Microsoft Word - 100-05-23--養生與保健_中山大學_講義 高 雄 市 立 中 醫 醫 院 張 志 浩 醫 師 皮 膚 失 去 彈 性, 變 粗 變 乾 燥, 頭 髮 變 白, 毛 髮 稀 落, 老 人 班, 魚 尾 紋, 眼 袋 突 出 視 力 模 糊, 老 花 眼, 白 內 障 鈣 質 流 失, 腰 酸 背 痛, 骨 質 疏 鬆, 易 骨 折 記 憶 力 降 低, 精 神 不 集 中, 易 怒, 神 經 質, 焦 慮 不 安, 難 入 睡 嗅 覺 改 變

More information

1931 9 18,, 4 1933 1 1, 2 21, 1937 7 7,,,, 14, 3500, 2000 1235, 913,,,,,,, 1500, 293. 6 1946,,, 376. 6,, 895714, 3%, 1610883, 5 %, 126,,,,,, 3176123,, 153800, 484899, 354468, 976125, 895714, 239387, 71730,

More information

萬里社區老人健康照護手冊

萬里社區老人健康照護手冊 萬 里 社 區 老 人 健 康 照 護 手 冊 1. 心 肺 功 能 的 照 護 a. 每 日 運 動 至 少 30 分 鐘 ( 包 括 熱 身 運 動 ), 運 動 強 度 是 呼 吸 輕 微 增 加, 但 仍 可 互 相 交 談 不 會 有 胸 痛 氣 喘 等 狀 況 發 生, 運 動 有 流 汗 的 情 況 即 表 示 達 到 功 效, 比 較 適 當 的 運 動 包 括 打 太 極 拳 步

More information

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法1000830.doc

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法1000830.doc 法 規 名 稱 : 強 制 汽 車 責 任 保 險 承 保 及 理 賠 作 業 處 理 辦 法 修 正 日 期 : 民 國 100 年 08 月 30 日 第 一 章 總 則 第 1 條 本 辦 法 依 強 制 汽 車 責 任 保 險 法 ( 以 下 簡 稱 本 法 ) 第 四 十 六 條 規 定 訂 之 第 2 條 強 制 汽 車 責 任 保 險 證 有 關 被 保 險 汽 車 之 記 載 事 項,

More information

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc 大 家 好 今 天 很 高 兴 有 机 会 跟 各 位 探 讨 一 个 题 目 叫 做 认 识 怀 孕 与 生 产 孩 子 是 上 天 赏 赐 给 我 们 的 一 个 礼 物 现 在 怀 孕 的 妈 妈 都 已 经 拿 到 这 个 礼 物 了 而 且 可 能 都 感 觉 到 里 面 活 蹦 乱 跳 每 一 个 妈 妈 在 怀 孕 的 时 候 都 希 望 他 的 孩 子 像 图 片 上 一 样 的 是

More information

範本檔

範本檔 1 保 健 強 身 多 吃 香 蕉 雖 然 香 蕉 有 某 些 食 用 方 面 的 限 制, 但 其 豐 富 的 營 養, 在 食 物 治 療 方 面 亦 有 重 要 的 價 值, 以 下 是 香 蕉 食 療 偏 方, 提 供 給 大 家 做 參 考 : 一 治 胃 潰 瘍 : 飯 前 吃 一 根 香 蕉, 一 日 一 次 即 可, 持 續 食 用, 會 有 不 錯 的 功 效 二 防 治 動 脈

More information

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 0562-2833893 24 工 商 银 行 安 徽

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 0562-2833893 24 工 商 银 行 安 徽 附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 1 安 徽 工 商 银 行 安 徽 省 合 肥 包 河 支 行 合 肥 市 宣 城 路 158 号 关 萌 萌 0551-2868032 2 工 商 银 行 安 徽 省 合 肥 宿 州 路 支 行 合 肥 市 宿 州 路 6 号 张 虎 0551-2676596 3

More information

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調 新 北 市 土 城 區 土 城 國 民 小 學 100 學 年 度 午 餐 督 導 第 一 次 會 議 會 議 紀 錄 表 時 間 :100 年 9 月 29 日 中 午 12:40 地 點 : 土 城 國 小 第 二 會 議 室 主 席 : 陳 雨 水 校 長 會 議 紀 錄 : 鍾 君 儀 出 席 人 員 : 陳 雨 水 校 長 林 芥 佑 組 長 蘇 昭 宏 主 任 王 文 姬 主 任 陳 原

More information

人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学

人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学 和录像带 希望他能看到家乡的新面貌 还经常托回 选都要家属自行设法邀请 此事招致薛岳昔日部属 乐昌探亲的台胞把亲人的问候与祝福转达 这一切 大感不平 薛岳大半生追随孙中山蒋介石 在北伐 让客居他乡的薛岳异常感动 家乡政府也没有忘记 时期曾与毛泽东周恩来有革命情谊 蒋经国犹是他 这位抗日英雄 专门拨款对他在九峰的故居进行修 的后生晚辈 这位走过波涛壮阔的人生历程 与中 葺 他的祖祠文物及 伯陵堂等建筑物都得到了妥

More information

糖尿病食譜

糖尿病食譜 1700 ( ) ( ) 344 15 8 53 60 2 420 1 1 50 2 35 3 1 100 ( ) ( ) 120 8 4 12 1 25 2 220cc ( ) ( ) 517 23 21 59 1 60 2 90 4 50 2 35 3 1 4 2 30 2 20 3 20 4 30 5 1 1 2 100 2 1 30 ( ) ( ) 60 15 140 ( ) ( ) 480

More information

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 / /4.5 18 1/4.8 ~1/5.2 1/4.5 ~1/4.2 1/4.76 1/4.76 19 / /4.5 g g g g 3. g g g g 4.1 2 / /4. 5 20 / / 21 g 0.4g 40 2.2~2.3 1/4.6~1/4.3 2.0.2g 0.4g 60 3.2 1/4.60.1g

More information