《Fortran95第7章-属性的声明.docx》由会员分享,可在线阅读,更多相关《Fortran95第7章-属性的声明.docx(37页珍藏版)》请在优知文库上搜索。
1、第7章属性的声明最终,对于数据我们跑下的工作,就是如何运用FROTRAN语古来完整地加以描述.FoRTRAN语言完成而数据的描述的语法单位是数据声明语句,在前面2章里面,我们整理好问题当中须要涉及的数据及其结构之后,要以FORTRAN语言写下来,就是运用FoRTRAN的声明语句,这些谱句的旬法设计保证能峪完备的描述我们关于数据所须要说明的一切属性.数据对象首先须要予以说明的当然就是它的类鞭,因此我们首先给出对象的类型声明语句.特殊地.须要说明在最初FoRTRAN标准里面遗序下来的一种数据类型描述方法IS式类型描述法,然后探讨各种数抵对望所可能具有的M性. 数组属性: 指针属性: 值特征: 对思
2、可访问性与运用属性: 特征兼容性; 自动数据对象: 存储关联.由于本章集中探讨FoRTRAN的声明语句,而声明的对象除了数据之外,其他的程序对象,例如函数,过程等也须要声明其类型或属性,因此本章一并探讳对其他程序对象的声明: 过程属性: NAMEUST语句:7.1 属性及其声明方式所谓一个对象的属性,就是程序运用该对象的方式。本垄所探讨的属性的大体分类与作为其名称的关键诃见表7-1:表7-1量性的分类及其关一词数IK类中INTEGERREAU以及DoUB1.EPRECISION)COMP1.EXUXiICA1.CHARAERTYPE(派生类量的名移由用户命名)致mM性DlMENSIONA1.1
3、.OCATAB1.E括竹M性POINTERTARGET故设?IDATAPARAMETER对象可访问性,溜用PUB1.ICPRIVATEINTENTOPTIONA1.SAVE过程“性EXTERNA1.INTRINSlC对象关系屉件NAME1.lsrEQUIVA1.ENCECOMMONSAVEXCOMPi-EXX35)SAVEXCOMP1.EX.D1MENSION(35).SAVE三1XC0MP1.fX.SAVE:X(J5)以上4种表述方式是完全等价的,明显最终种G他沽.在一个程序单元里面,引用一个数据对象的前提是已经声明白它的种种必备属性,数据对望的各种M性里面,最为基本的当然是数据对望的类型,
4、然后还须要声明其各种必衢的试性,这样该数据对型才能被程序正确地调用访问。然而在一个实际的程序里面,数据对象的声明在表面上可能并不是完招的,同时又不是非法的语法,出现这种状况的缘由如M在FoRTRAN的早期版本里,为了求简化的原因,运用r一种断式约定数据类型的方式,即通过数据对象的名称的第一个字母来册别其所属类型,这种类型声明方式被后来的FoRTRAN版本始终沿用下来了,因此假如一个程序单元里出现的数据对能没有经过类型声明语句的特地声明,则须要考虑其是否愿于隐式声明.相反,假如想解除这种陷式声明的影响,则须要另外或独加I以IMP1.ICITNONE语句作为向明,任何其他的属性假如没有出现的话,或
5、者是因为该数据对象不须要某种属性,或者是该数据对象的某种性实行了默认设置.从上面的分类表7-1可以看到.FORTRAN的属性除了用来说明数据类型的M性之外,其他属性都是针而不同的数据类审域程序对象,以及它们的8种特征的.例如数组麻性只是川来说明数组,指针属性只是用来说明指针,而过程属性只是用来说明过程,下面将分类探讨这些属性.7.2 类型声明语句我们在探讨第5货探讨数据类型的时候给出数据类型的基本声明语句的句法形式,这里将侧sRF数据类型的声明与其他相关属性的施容,因为从语言的尚沽与白然的角度动身,把一个数据对象的类型和其他同性都归结为一条数据声明语句是特别可取的.所以我的得到如下的一般的类型
6、声明句法形式(R50U:cypc-spccification.u11ribuic-SpccifkDtion).:Jcnticy-其中种别值(kind、SlUe)是一个标量胫型友达 属性说明WribUIeSpecificaiioiD的搬句法形式(R5O3)为如下几种形式之,:PARAMETERA1.UKJAAB1.EDIMNSION(ar11yspccificaliim)EXTERNA1.INTENTIinICINTPCCifkn)INTRINSICOPTIONA1.POINTERSAVETARCiETucccviXpCCigliml其中的可访问性说明(access.SpedfiCMion)包括
7、PUB1.IC和PRIVATE。 数据项声明的一殷句法形式(R505)为如下2种形式之一,objectne(af11y-jpecfkahn)14Cluraeter-length)(nilialzaliunfunction-name(array*spcciGcatiMi=NU1.U)类型声明的一般规则如下: 对数据对象的说明优先于脸式类型描述,即隐式类型描述法恒久只是在数据对象没有获得任何说明的状况下的默认法则,而显式说明既可以与隐式法则一样,也Ur以不一样. 在一个类型声明语句当中,同一个属性只能出现一次, 在一个作用域内,一个数据项的任何属性只要约定了一次,就不行再次约定。 种别选择符所取的
8、种别值只能是编译系统所许可的相应类型的种别参数之字符长度(CharaCIer-Iength)选项只能出现在CHARACTER类型的声明语句当中.假如运用初始化谙句,则必需在数据项声明前运用双付号(:).1.1.2 实型R1.A1.暗句声明白实生数据时象的Z林,同时也可以附加种别参数以及其他蟠性.假如给出种别选择符,即说明该实型数据的农示方法。双精度实审数据还可以运用DOUB1.EPRECISION语句加以声明,当然与在REA1.语句当中运用种别参数是完全等价的.由于DOUB1.EPRECISION本身指出了精度表示方法.因此不能再在后面附加种别选择符.不过DOUB1.E这个词也可以作为一个命名
9、整型常业,取双精度实型的种别缶数侑,这样就Ur以运用REAUDOUB1.E)来声明双精度实型数据了。实型数据的声明的格式如下:REA1.I(IKIND=Jkind-value)11atribute-lC:enry-liMDOUB1.EPRECISIONattnbmc-lisc):)eniry-kM【例76】下面是各种形式的主要说明数据项的声明语句:REA1.(KIND=high).OPTIONA1.:ETREA1.SAVE:a(IO),b(2N(5.。):TAB1.bI.TABIJ:2R111.(DOUBI),POINTER:;AB(:.)REAUDoUB1.BhDIMENSION(5.IO)
10、z:TAB1.EhTAB1.2【例77】下面是各种形式的主要说明数据属性的声明谙句:REA1.(KIND=hhlIeMvaJREA1.a110),W2OM)OpTlONA1.icstvaJSAVEa.bDOUB1.EPRECISIONTAB1.El.TAB1.2DIMENSIONTAB1.EI(5.10).TAB1.E2(5.10).B(t.)POINTERA可以比较什么两种表示方法,在说明臼同样的意思的前提下,把屈性说明附加在数拉:类生说明语句当中,比H种园性单独,个语句加以说明要简洁自然得多。1.1.3 复型COMP1.EX语句声明白更型数据对象的名物:,同时也可以附加种别参数以及其他处性
11、。假如给出种别选择符,即说明该IX里数据的表示方法.说明发型数据类里的句法为:COMp1.EXKIKIND=kxl-value11.allnbulelisl:EryIE【例7-8下面是各种形式的发型数据对象浑明语句:COMPll-XchCOMPIJ-XIKIND=4).PRlVATE:zz.y!等价FCOMP1.EX2yyCOMP1.EX8)ax.byCOMP1.EX-16ax.byCOMP1.EX(kind(4)y(IO)complexkixl-11)xaz(IO)1.1.4 逻辑型I-OGICA语句比明白逻辑型数则对您的名称,同时也可以附加种别参数以及其他屈性.假如给出种别选择符,即说明该
12、龙耨S!数据的表示方法,说明逻辑型数据类型的句法为:1.OGICA1.(KIND=kxl-vaJuc),a11nbuclist):cnry*lis(【例79】卜面是各种形式的主要说明遗纲型对象的评明语句:1.(Xj!CA1.AUXXrATABlJ:二Ilagl.Il芈2IXXjICA1.(KIND=byte),SVB:doit,dnnt【例7.10下面是各种形式的主要说明对象的屈性的声明语句:1.OGICA1.flagI.flag2UXilCAl.(KIND=byUrlduil.dmtaliqcatarlen;5i.n;喀2SAVEdoit,dont1.1.5 字符型CHARACTER语句声明
13、白字符4!数据对3的名称,同时也可以附加种别参数以及其他属性。偿如给出字符选择符,即说明该字符型数据的最大字符长度。说明字符型数据类里的句法为;CHARACTERcharae.KIND=Jkindvalue)KIND=ki11d-vah?.I.FN=lcnglh-vauc)其中长度选挣符(Iengthsdector)的句法形式(R508)可以是:(1.EN=|ICI喀IhNaIUCJ*ChAnictcr-IcngthI.其中字符长度(1.ENKR509)可以是:(length*valucuralar-inlege!teralcusUn(其中长度值(Ienavalue)(R510)可以是:Sptxificfliioiwx