- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章名词的空间域、时间域和物理存储位置 空间域:一个类型或量值,从程序的什么位置到什么位置是有效的,是可以引用的,是占据内存的。 时间域:一个类型或量值,在程序执行过程中,从什么时刻开始到什么时刻是占据内存的。 名词的空间域和时间域不完全一致。 有空间域的类型或量值,一定有时间域。即在程序的某位置可以访问的类型或量值,此时一定占据内存; 有时间域的类型或量值,不一定有空间域。即有的时候,程序执行到某个位置,某个类型或量值虽然占据内存,但无法访问,即在该位置不可见。 6.1 C/C++程序的逻辑结构 程序从小到大可分为如下逻辑单位: 语句(statement):分号结束 2.模块(block): 一对花括号括起的若干语句。 3.嵌套模块: 多对花括号的嵌套。 4.文件(file): 程序的存盘单位。文件中通常包含多个模块(或嵌套模块),每个模块内包含多个语句。 5.工程(project): 工程是功能单位,是对多个文件进行组织和管理的框架。同一个工程内的文件之间可以交换数据,共享函数。 6.工作区(workspace): 工作区是VC++最大的开发单位,是对多个工程进行组织和管理的框架。一个工作区内的多个工程应该是相关的。不同工程间可以共享文件。 6.2名词性的类型和量值在各逻辑结构上的空间域 6.2.1模块域 模块{ }是空间作用域的最小范围。 缺省情况下,定义在模块内(一对花括号内)的类型和量值,其有效范围是从定义位置到本模块结束。出本模块右花括号后,该类型或量值因为释放内存空间而失效,无法访问。 例6. 2 类型模块作用域的验证 #include stdio.h Person fun(); Person fun() { struct Person { int id; char name[10]; } ZS={1, 张三}; return ZS; } void main() { Person LiSi; LiSi=fun(); } 例6. 2 类型模块作用域的验证 #include stdio.h struct Person { int id; char name[10]; } ; Person fun(); void main() { Person LiSi; LiSi=fun(); printf(id=%d\n,LiSi.id ); printf(name=%s\n,LiSi.name ); } Person fun() { Person ZS={1, 张三}; return ZS; } 6.2.2嵌套模块的层域 当一个模块内嵌套另一个模块时,定义在内层模块的类型和量值的空域就是内层模块; 定义在外层模块内的类型和量值的空域是外层模块,当然涵盖内存模块,即在内层模块内可以引用定义在外层模块内的类型和量值。 当内层模块内定义了和外层模块内同名的类型和量值时,内层的类型和量值覆盖了外层模块的同名类型和量值,导致只能引用内层中定义的部分。 例6. 3 嵌套模块中的同名类型或量值的空间域 #include stdio.h void main() { struct Person { int id; char name[10]; }; struct Date { int year; int month; int day; }; Person ZS; {//内嵌模块开始 struct Person { int id; char name[10]; int Class; }; Person LiSi; Date Birthday; printf( sizeof(LiSi)= %d\n, sizeof(LiSi)); } //内嵌模块结束 printf( sizeof(ZS)= %d\n, sizeof(ZS)); printf(%d, sizeof(LiSi)); } 6.2.3文件域 程序的所有代码都是写在文件中的。 用C/C++编写程序,最少要有一个文件。 在文件内定义的类型或量值(注意:不包含在任何模块中,而是直接定义在文件中)的空间域是从定义位置开始,到本文件的结束。本文件内,在定义该类型或量值后面的任何模块内或模块外,都可以引用该类型或量值。 类型只能定义在前,引用在后。 变量通常定义在前,引用在后。 变量如果定义在后,引用在先,必须在引用前明确用关键字extern声明。 例6. 4 文件中定义的类型或量值的空间域 #includestdio.h struct Person { int id; char name
您可能关注的文档
- DCA算法和模块介绍.ppt
- DCS第一节绪论.pdf
- 微结构对Eu掺杂Bi_4Ti_3O_12_铁电薄膜铁电性能影响_吕业刚.pdf
- 微课制作工具Camtasia Studio与Audition操作.pdf
- DDR与DDR2,DDR3从外观上的区别.doc
- dd甘为霖厦门音新字典与打马字厦门音个字典.pdf
- Delphi——ADO组件使用.ppt
- 微细加工(第六章 半导体晶体的切割和磨削加工-2013修改稿).pdf
- Dem及遥感影像制作三维效果简单教程.pdf
- 微型机原理及接口技术第4章.pdf
- 2025年辽宁省辽阳市单招职业适应性测试题库及答案一套.docx
- 2025年荆州职业技术学院单招职业适应性测试题库汇编.docx
- 2025年西安培华学院单招职业倾向性测试题库新版.docx
- 2025年西安明德理工学院单招职业适应性测试题库及答案一套.docx
- 2025年辽宁轻工职业学院单招职业技能测试题库必威体育精装版.docx
- 2025年襄阳职业技术学院单招职业适应性测试题库一套.docx
- 2025年西安医学高等专科学校单招职业技能测试题库1套.docx
- 2025年资阳环境科技职业学院单招职业倾向性测试题库及答案1套.docx
- 2025年西安交通工程学院单招职业倾向性测试题库及答案一套.docx
- 2025年郑州黄河护理职业学院单招职业倾向性测试题库完美版.docx
最近下载
- 2025党校入党积极分子预备党员培训考试题库(含答案).docx VIP
- 2023-2024年数学竞赛AIME I II真题含答案(共4套).pdf
- 2025年湖北省高考数学模拟试卷(附答案解析).pdf VIP
- 骶神经调节术护理ppt.pptx
- 智能仓储与配送 课件 1.1 储配设施设备认知.pptx
- 建筑门窗检验规程.pdf VIP
- 2025统编版道德与法治小学一年级下册第一单元《我有新面貌》教学反思(附教材目录).docx VIP
- DCS题库附答案..docx
- 2024年广东省广州市高考英语二模试卷.docx VIP
- 2023年11月23日第八届全国十佳公诉人竞赛刑事检察策论真题及答案解析.doc VIP
文档评论(0)