- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
声明和定义
严格说,声明(declaration )和定义(definition )不一样
声明:
• 说明一个事物的存在和它的一些属性,例如变量与其类型。根据声明可
以确定被声明事物的使用方式。对象声明并不实际建立对象
• 例如:C 语言的外部(extern )变量声明,函数原型声明
定义:
• 是声明,具有说明同样的基本作用
• 对象定义要求程序运行时创建被定义对象
• 对于子程序,需要提供子程序的体
• 对于变量,可能提供变量的初始值,造成的实际动作包括为变量分
配存储和可能的初始化
一些语言的标准里严格区分了两种情况,有些没严格区分这两个术语
2012年3月 23
作用域
定义(声明)建立名字与事物之间的约束,这一约束在源程序里(在源程序
的正文里)的作用范围称为这一约束的作用域(scope ),也说是这个定义或
声明的作用域
• 声明有确定的作用范围(作用域),只在确定范围里有效
• 在声明的作用域里,被声明名字指称相应的对象
我们(人/语言处理器)根据作用域确定一个名字对应的事物
例:C 局部变量在其定义所在的复合语句里可用(从定义位置开始)
局部变量定义的作用域就是这个复合语句,从定义开始
作用域单位:通常规定一些程序结构作为名字/对象约束的作用域
不同语言里的规定可能不同
常见作用域单位:子程序/ 函数,复合语句,类,等等
2012年3月 24
作用域
早期Fortran 的作用域结构很简单
由于人们认识到信息局部化的重要性,引进了许多作用域单位
Algol 60 引进块(block )结构作为基本作用域单位
允许任意嵌套的局部作用域
子程序看作是有名字且可被调用的块
现在一般语言都以子程序(过程/ 函数)作为作用域单位,一些语言允许子
程序体内部的嵌套作用域(如C 的复合语句)
其他作用域单位:
• 结构/记录的声明,OO语言里的类定义(声明)
• 模块结构(如C++ 的名字空间,Ada 的包)
• C 源文件,也是一种作用域单位(static 外部函数和变量的作用域)
学习一种语言时,必须弄清楚语言中有哪些作用域单位
2012年3月 25
作用域:作用域单位
不同语言对作用域单位和作用域有一些不同的规定。例如:
一些语言里有全局作用域,供定义全局的标识符与对象(和其他事物)的
约束。除全局作用域外的其他作用域都是局部的
C 语言的全局作用域里可以定义/声明变量、函数、类型等。函数只允许定
义在全局作用域里(不允许在函数内部嵌套定义函数)
C 语言的局部作用域是复合语句(函数体也是复合语句)。C++ 对C 的作
用域做了许多扩充
在Java 语言的全局作用域里只能定义类,其他的实体都只能定义在类内
部的各种局部作用域里
Fortran 只有全局作用域和子程序作用域,子程序内部没有嵌套作用域
Basic (老的)只有一个全局作用域,所有变量定义都在一个作用域里。定
义在子程序里的变量也具有全局作用域(难以编写大程序)
2012年3月 26
作用域
2012年3月 27
作用域:冲突和嵌套 int n;
int p (int n) {
通常规定: double x;
您可能关注的文档
- 基于功率配置和关联管理的WLAN能耗优化算法-东南大学学报自然.PDF
- 基于加速不平衡响应的柔性转子无试重动平衡-西北工业大学学报导航页.PDF
- 基于分形理论域城镇体系空间结构变化分析.PDF
- 基于动态柔性变结构的控制系统优化设计-电子学报.PDF
- 基于动态能力视角的知识管理价值创造模式研究.PDF
- 基于动觉图式的平面倒立摆摆起控制-JournalofNortheastern.PDF
- 基于单片机的嵌入式智能洗衣机系统设计-浙江大学光电学院.PDF
- 基于区间分析的一类三转动自由度并联机构的精度设计-Journalof.PDF
- 基于占能比的铣削加工颤振在线监测研究-振动测试与诊断.PDF
- 基于协同虚拟环境的装配设计系统-计算机工程.PDF
最近下载
- 老年社会工作服务项目策划书.docx VIP
- 圆钢方钢管受压承载力计算表.xls VIP
- 2025天津市华淼给排水研究设计院有限公司对外招聘7人笔试历年参考题库附带答案详解.docx
- 2025中级保育师资格考试题库资料及答案(浓缩400题).pdf VIP
- 《大学影视鉴赏》全套完整版教学课件(共877页PPT).pptx
- 名著导读《艾青诗选·如何读诗》教学设计.doc VIP
- 可编程逻辑控制器(PLC)系列:Schneider Electric Modicon M580_(16).ModiconM580的冗余系统设计.docx VIP
- 48个国际音标发音字母及字母组合.docx VIP
- 2025年国家开放大学电大《公共部门人力资源管理》机考3套真题题库及.docx VIP
- 国家建筑标准设计图集20S515 钢筋混凝土及砖砌排水检查井.pdf VIP
文档评论(0)