- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 5.1 模块化程序设计 怎么解决呢? 老和尚自然会想,只要有另一个和尚能将63个盘子在满足要求的前提下从一个座移到另一个座,那么问题就解决了。他只要这么做: 1,命令第二个和尚将63个盘子从A座搬到B座。 2,自己将1个盘子从A座搬到C座。 3,再命令第二个和尚将63个盘子从B座搬到C座。 至此,全部任务就完成了,但还有一个问题,那就是第二个和尚怎么将63个盘子从一个座搬到另一个座?他也采用老和尚的法子: 1,命令第三个和尚将62个盘子从A座搬到C座。 2,自己将1个盘子从A座搬到B座。 3,再命令第二个和尚将62个盘子从C座搬到B座。 5.9 预处理指令 预处理发生在编译之前,主要完成的功能:把其他文件包含到当前文件中、定义符号常量和宏、程序代码的条件编译以及预处理指令的条件执行。 所有预处理指令都是#开头,并单独起一行,没有分号结尾 预处理指令由预处理程序执行,在编译之前处理完毕,预处理的结果作为编译器的输入。预处理的结果不是目标代码,它只是对源程序进行简单处理后得到的高级语言程序,还需要经过编译器的翻译才能变成目标代码。 5.9.1 #include 指令 指示编译器将该指令所指的文件包含到当前的源文件中。多数用来包含头文件。 eg. #include iostream.h :在指定的目录中寻找被包含的文件 “ ” :在当前程序所在目录中寻找被包含文件 5.9.2#define指令 #define 符号常量标识符 字符串 #define 宏标识符 字符串 Eg. #define PI 3.14159 #define CIRCLE_AREA(x) (PI*(x)*(x)) 5.9.3 条件编译指令略 2. 静态局部变量:当函数中的局部变量的值在函数调用结束后不消失而保留原值时,该变量称为静态局部变量。用关键字static进行声明。 例5.9 考察静态局部变量的值 #include iostream.h void main() {int f(int); int a=2,i; for(i=0;i<3;i++) coutf(a); } int f(int a) {auto int b=0; static int c=3; b=b+1; c=c+1; return(a+b+c); } 对静态局部变量的说明: 1. 静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。而自动变量(即动态局部变量)属于动态存储类别,占动态存储区空间而不占静态存储区空间,函数调用结束后即释放。 2. 对静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。 3.如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。而对自动变量来说,如果不赋初值则它的值是一个不确定的值。 4. 虽然静态局部变量在函数调用结束后仍然存在,但其他函数不能引用它。 例5.10 输出1到5的阶乘值 #include stdio.h void main() {int fac(int n); int i; for(i=1;i<=5;i++) printf(″%d!=%d\n″,i,fac(i)); } Int fac(int n) {static int f=1; f=f*n; return(f); } 3. 寄存器变量( register):变量的值是存放在内存中的。当程序中用到哪一个变量的值时,由控制器发出指令将内存中该变量的值送到运算器中。 经过运算器进行运算,如果需要存数,再从运算器将数据送到内存存放。 如果有一些变量使用频繁,则为存取变量的值要花费不少时间。为提高执行效率,C++语言允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。由于对寄存器的存取速度远高于对内存的存取速度,因此这样做可以提高执行效率。这种变量叫做寄存器变量,用关键字register作声明。 说明:三种局部变量的存储位置是不同的:自动变量存储在动态存储区;静态局部变量存储在静态存储区;寄存器存储在CPU中的寄存器中。 5.7.2 全局变量的存储类别 全局变量都是存放在静态存储区中的。因此它们的生存期是固定的,存在于程序的整个运行过程。 一般来说,外部变量是在函数的外部定义的全局变量,它的作用域是从变量的定义处开始,到本
您可能关注的文档
- 2013版高中全程复习方略配套课件:7.8立体几何中的向量方法(人教A版·数学理)浙江专用.ppt
- 2013高考物理真题汇编曲线运动.doc
- 2013高三数学辅导资料解斜三角形.doc
- 2013广东高考物理易错点剖析.doc
- 2013届高考物理第一轮考点总复习课件13.ppt
- 2013届高考政治一轮复习 第2课多变的价格课件 新人教版必修1(湖南专用).ppt
- 2013届高三数学(文)一轮复习:3.8 正弦定理、余弦定理的应用举例(广东专用版).doc
- 2013届高三总复习课件(第1轮)地理(广西专版)1.1考点1地球.ppt
- 2013年5月三级心理咨询师试题及其答案.doc
- 2013年八年级下数学暑假作业(提高题)1.doc
最近下载
- (100分)中国石油大学2022秋《红楼梦研究第二阶段在线作业.doc VIP
- 第7节货场平面布置及配置图.PDF VIP
- 8.1功与功率 (教学课件)-高中物理人教版(2019)必修第二册 .pptx VIP
- 海浦蒙特MTCC-V2A经典系列别墅电梯控制柜用户手册-中-V1.0.pdf VIP
- 塔里木油田超深气井产出剖面解释方法研究.pdf
- 2025年上海市青少年活动中心(上海市青年发展服务中心)工作人员公开招聘(第二批)笔试备考题库及答案解析.docx VIP
- 2025北京市公安局公共交通安全保卫总队勤务辅警招聘70人笔试备考试题及答案解析.docx VIP
- BRCGS 包装材料(第七版)文件清单.xlsx VIP
- 生物多样性保护与监测.pdf VIP
- 《探寻非遗漆扇之美》课件.pptx VIP
文档评论(0)