ch09程序组织.ppt

ch09程序组织.ppt

ID:48061544

大小:298.50 KB

页数:40页

时间:2020-01-13

ch09程序组织.ppt_第1页
ch09程序组织.ppt_第2页
ch09程序组织.ppt_第3页
ch09程序组织.ppt_第4页
ch09程序组织.ppt_第5页
资源描述:

《ch09程序组织.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章程序组织和编译预处理2021/7/17目录9.1作用域和可见性9.2内存区和存储类型9.3编译预处理9.4名称空间2C++实用教程9.1作用域和可见性作用域又称作用范围,是指程序中标识符(变量名、函数名、数组名、类名、对象名等)的有效范围。标识符的作用域分为5种:函数原型作用域、函数作用域、块作用域、类作用域和文件作用域。一个标识符是否可以被引用,称为标识符的可见性。在一个C++程序中,一个标识符只能在声明或定义它的范围内可见,在此之外是不可见的。3C++实用教程9.1.1函数原型作用域函数原型作用

2、域指声明函数原型时所指定的参数标识符的作用范围。该作用范围在函数原型声明中的左、右圆括号之间。可以与函数定义中说明的标识符名称不同可以省略intx;intsum(intx,inty);y=100;intmain(){...}intsum(inta,intb){}//error4C++实用教程9.1.2函数作用域具有函数作用域的标识符在声明它的函数内可见,但在此函数之外是不可见的。在C++中,只有goto语句使用的标号是唯一具有函数作用域的标识符。标号可以先使用后声明。goto语句不能跨函数跳转。voidf

3、un(void){inta,sum=0;START:cin>>a;if(0==a)gotoEND;else{sum+=a;gotoSTART;}END:cout<>a;if

4、(a<0){a=-a;intb;…}}a作用域b作用域voidfun(void){inta;…{inta;a=100;…}cout>>a;}6C++实用教程9.1.4文件作用域所有在函数外定义的标识符称为全局标识符。全局标识符的作用域是文件作用域,它从声明处开始,直到文件结束一直是可见的。(1)全局常量或全局变量的作用域从定义开始到源程序文件结束。(2)若函数定义在后,调用在前,必须进行函数原型声明。(3)对于头文件中定义的标识符,当它们被预编译时,头文件的内容将在源文件的相应位置展开,所以在头文件中定义

5、的标识符的作用域可以看成从#include该头文件开始的位置到源程序文件结束。constfloatPI=3.14;inta;voidmain(){//…}voidfun(void){//…}7C++实用教程作用域的层次如果某个标识符在外层中声明,且在内层中没有同一标识符的声明,则该标识符在内层可见。对于两个嵌套的作用域,如果在内层作用域内声明了与外层作用域中同名的标识符,则外层作用域的标识符在内层不可见(即名称的屏蔽,或可见性)。文件作用域函数作用域块作用域8C++实用教程//id=7//id=5//te

6、mp=4#includeintid=3;//文件作用域inttemp=4;intmain(){id=5;if(id>0){intid;//块作用域id=7;cout<<"id="<

7、的同名变量示例#includeusingnamespacestd;inti=10;//Aintmain(){inti=20;//B{inti=5;//Cintj;::i=::i+4;//::i是引用A定义的变量i,不是B中的ij=::i+i;//这里不加::的i是C中定义的变量cout<<"::i="<<::i<<",j="<

8、.1作用域和可见性9.2内存区和存储类型9.3编译预处理9.4名称空间12C++实用教程9.2内存区和存储类型存储类型是针对变量而言的,它规定了变量的生存期。无论是全局变量还是局部变量,编译系统会根据其存储方式定义、分配和释放相应的内存空间。变量的存储类型反映了变量在何处开辟内存空间,以及占用内存空间的有效期限。13C++实用教程9.2.1内存区在C++中,一个程序编译后的数据所占用的内存可简单地分为4个区,分别是:栈(sta

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。