关于区COMPILER所作的工作 1,名字填符号表 2,分局部区号 3,构造数据区的相应存储映象:局部区,公用块 局部数据区的内容 临时变量,数组,简单变量 形式单元 寄存器保护区 返回地址 第10章运行空间存储
第10章 运行空间存储 11 关于区 COMPILER 所作的工作 1,名字填符号表 2,分局部区号 3,构造数据区的相应存储映象:局部区,公用块 局部数据区的内容 临时变量,数组,简单变量 形式单元 寄存器保护区 返回地址 a
COMMON语句介绍 1, 格式 COMMON/n1/a1,a2,an,/n2/b1,b2...b//R,X,Y,Z 公用 变量名,数组名 区名 数组说明符 无名公用区 2, 用途 A,不同程序块的变量之间建立联系 主程序: 子程序: COMMON Z1,Z2,AL,BE,GA SUBROUTINE QUAD READ(11,1)AL,BE,GA COMMON X1,X2, A.B.C CALL QUAD 结果 初值 0章运行空间存
第10章 运行空间存储 12 COMMON语句介绍 COMMON/n1/a1,a2, …an,/n2/b1,b2, …bn/ /R,X,Y,Z 1, 格式 公用 区名 变量名, 数组名, 数组说明符 无名公用区 2, 用途 A, 不同程序块的变量之间建立联系 主程序: COMMON Z1,Z2,AL,BE,GA READ(11,1)AL,BE,GA CALL QUAD … 子程序: SUBROUTINE QUAD COMMON X1,X2, A,B,C 结果 初值
B,节省单元,2块程序可以公用一个公用块,特别是数组 3, 使用 A, COMMON A(2,3) 组说明符 B, DIMENSION A(2,3) COMMON A 数组名 C, COMMON A DIMENSION A(2,3) 交换次序 第0章运行空间存储
第10章 运行空间存储 13 B, 节省单元,2块程序可以公用一个公用块, 特别是数组 组说明符 数组名 交换次序 3, 使用 A, COMMON A(2,3) B, DIMENSION A(2,3) COMMON A C, COMMON A DIMENSION A(2,3)
10.1.2公用语句处理 用途:不同程序段之间供享数据 COMMON /B1/A,B,C B1 AB C E G COMMON /B1/E,F,G 第0章运行空间存储
第10章 运行空间存储 14 10.1.2 公用语句处理 用途:不同程序段之间共享数据 COMMON /B1/A,B,C COMMON /B1/E,F,G A B C E F G B1
处理方法 COMMON /B1/A,B,C(50) DIMENSION A(10,10),B(100) COMPLEX A,B 当首次扫描到B1的时候并不能立即确定每个公用元的相 对地址 怎么办? 第10章运行空间存储 15
第10章 运行空间存储 15 处理方法 COMMON / B1 / A, B, C ( 50 ) DIMENSION A ( 10, 10 ), B ( 100 ) COMPLEX A, B 当首次扫描到 B1 的时候并不能立即确定每个公用元的相 对地址 怎么办?