网站大量收购闲置独家精品文档,联系QQ:2885784924

Fortran程序设计第7章节属性的声明.doc

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Fortran程序设计第7章节属性的声明

第7章? 属性的声明 最后,对于数据我们剩下的工作,就是如何运用FROTRAN语言来完整地加以描述。 FORTRAN语言完成对数据的描述的语法单位是数据声明语句,在前面2章里面,我们整理好问题当中需要涉及的数据及其结构之后,要以FORTRAN语言写下来,就是使用FORTRAN的声明语句,这些语句的句法设计保证能够完备的描述我们关于数据所需要说明的一切属性。 数据对象首先需要予以说明的当然就是它的类型,因此我们首先给出对象的类型声明语句,特别地,需要说明在最初FORTRAN标准里面遗留下来的一种数据类型描述方法——隐式类型描述法,然后讨论各种数据对象所可能具有的属性。 ● 数组属性; ● 指针属性; ● 值特征; ● 对象可访问性与使用属性; ● 特征兼容性; ● 自动数据对象; ● 存储关联。 由于本章集中讨论FORTRAN的声明语句,而声明的对象除了数据之外,其他的程序对象,例如函数,过程等也需要声明其类型或属性,因此本章一并讨论对其他程序对象的声明: ● 过程属性; ● NAMELIST语句; 7.1? 属性及其声明方式 所谓一个对象的属性,就是程序使用该对象的方式。 本章所讨论的属性的大体分类与作为其名称的关键词见表7-1:? 表7-1属性的分类及其关键词 数据类型? INTEGER ????? REAL(以及DOUBLE PRECISION) ????? COMPLEX ????? LOGICAL ????? CHARACTER ????? TYPE(派生类型的名称由用户命名) 数组属性? DIMENSION ????? ALLOCATABLE 指针属性? POINTER ????????? TARGET 值设置??? DATA ????? PARAMETER 对象可访问性与调用??? ??????PUBLIC ????????? PRIVATE ????????? INTENT ????????? OPTIONAL ????????? SAVE 过程属性? EXTERNAL ????? INTRINSIC 对象关系属性??????????????? NAMELIST ????????? EQUIVALENCE ????????? COMMON ?? 这些关键词的使用,或者说属性的声明有2种方式: ●??? 在类型声明时附加属性说明,这种语句形式侧重在给出数据对象,属性说明是附加的; ●??? 使用单独的属性声明语句,这种语句形式侧重在说明属性本身。 之所以会出现2种声明方式,完全是历史的缘故。FORTRAN的早期版本里,任何的对象属性说明,都是运用单独的属性声明语句,如果一个数据对象同时具有多种属性,就需要使用相应的多个属性声明语句,从程序阅读的角度来看,会显得很烦琐,因此到了FORTRAN90和95版本,只要在程序单元当中需要声明一个数据对象的类型,那么就可以把它的其他所有属性都附加到它的类型声明语句当中,使得程序显得更加紧凑。 【例7-1】 我们要定义2个实型变量X,Y,同时还要声明它们都具有指针属性,在早期FORTRAN语言里写为: ??? REAL X,Y ??? POINTER X,Y 换一种更加紧凑的写法就是把这2条语句写为1句: ??? REAL POINTER::X,Y 之所以我们还需要讨论单独的属性语句,主要是有时候需要保持源码的向前兼容性,而且在少数情况下,这2种形式也并完全等价。因此在本章在讨论各种属性的声明方式的时候,将首先给出面向数据对象的声明方式,然后给出等价的面向属性的声明方式。 在这2种表示属性的方式里,同样由于历史的缘故,数组的维度属性DIMENSION既可以附加在类型声明语句当中表述,也可以单独声明,实际上DIMENSION这个关键词属于老式FORTRAN的遗留物,在新的表述方式里面,完全可以省略它。 【例7-2】 ??? COMPLEX X ??? DIMENSION X(35) ??? SAVE X ? ??? COMPLEX X(35) ??? SAVE X ? ??? COMPLEX,DIMENSION(35),SAVE::X ? ??? COMPLEX,SAVE::X(35) 以上4种表述方式是完全等价的,显然最后一种最简洁。 在一个程序单元里面,引用一个数据对象的前提是已经声明了它的种种必需属性,数据对象的各种属性里面,最为基本的当然是数据对象的类型,然后还需要声明其各种必需的属性,这样该数据对象才能被程序正确地调用访问。然而在一个实际的程序里面,数据对象的声明在表面上可能并不是完备的,同时又不是非法的语法,出现这种情况的原因如下: ●??? 在FORTRAN的早期版本里,为了求简化的缘故,使用了一种隐式约定数据类型的方式,即通过数据对象的名称的第一个

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档