- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言学习,c语言课们件第11章
11.1 程序设计的基本方法 11.2 C语言对模块化编程的支持 11.3 多个源程序文件组成的C程序设计 4. register变量 一般情况下,变量的值存放在内存单元中。但是有一些使用频繁的变量,比如循环控制变量和循环体内反复引用的局部变量,如果循环的次数很多,对这些变量存取时要消耗很多的时间,为了提高程序的执行效率,C语言允许将局部变量的值存放在CPU的寄存器中,这样可以直接从寄存器取出这些变量,从而大大提高存取的速度。 只有局部自动变量和形式参数可以声明为register变量,对全局变量和静态局部变量不能声明为register类型,也就是说寄存器变量是动态存储类型。 ※注意:因为register变量可以保存在寄存器中,所以对这类变量不能使用取址操作符取它的地址。另外,实际上大多数系统register只对整型和字符型变量起作用。当今优化的编译系统能够自动识别使用频繁的变量,从而将这些变量存放在寄存器中,并不需要编程者指定。 11.2.3 内部函数与外部函数 1. 函数的存储分类 函数也可以像变量一样,通过static和extern声明改变它的作用范围。只能被本文件的其它函数调用的函数被称为内部函数,能被其它文件中的函数调用的函数称为外部函数。 (1) 内部函数 声明内部函数时,在函数名和函数类型的前面加static。 static 类型标识符 函数名(形参列表) 例如: static int fun(int m,int n) 内部函数又叫静态函数,和静态全局变量一样,由于在它们的前面使用static声明,使得其它文件不能引用它们,从而使得在不同的文件可以使用相同的文件名而不会产生干扰。这也是C语言支持程序模块化设计的一个特点。 【例11-7】内部函数举例。 /*exam11_7*/ /*file1.c*/ static int fun(int x,int y) /*声明函数fun为内部函数*/ { int z; z=x+y; return z; } int main(void) { extern fun1(int,int); int m,n,s; m=10; n=20; printf(“%d+%d=%d\n”,m,n,fun(m,n)); printf(“%d*%d=%d\n”,m,n,fun1(m,n)); } /*file2.c*/ static int fun(int x,int y)/*声明函数fun为内部函数*/ { int z; z=x*y; return z; } int fun1(int m,int n) { return fun(m,n); } 该程序由两个文件file1.c和file2.c组成,file1.c中的函数fun和file2.c中的函数fun同名,但是fun函数在两个文件中的功能不同,由于在各自文件中作了static声明,所以互不干扰。file2.c中的函数fun1没有作static声明,所以可以被file1.c中的main函数调用。 [演示] 10+20=30 10*20=200 运行结果: 注意要使用Change dir修改为file1和file2所在目录,同时输入“Project name”为exam11_7.prj。 (2) 外部函数 声明外部函数时,在函数名和函数类型的前面加extern。 extern 类型标识符 函数名(形参列表) 例如: extern int fun(int m,int n) 外部函数可以被其它文件的函数调用。C语言规定,如果在定义函数时省略extern,则隐含为外部函数。 虽然在定义外部函数时可以省略extern,但是在调用其它文件的函数时要用extern声明所用函数为外部函数或者利用函数原型进行声明。 【例11-8】外部函数举例。 利用外部函数实现:输入一个字符串,然后把字符串中所有数字字符删掉。 /*exam11_8*/ /*file1.c*/ void input(char s[ ]) /*定义外部函数input*/ { gets(s); /*输入字符串s*/ } void delete(char s[ ]) /*定义外部函数delete*/ { int j,k; for(j=k=0;s[j])!=’\0’;j++) if(!(s[j]=’0’s[j]=’9’)) /*不是数字字符则保留*/ s[k++]=s[j]; s[k]=’\0’; /*存放字符串结束符*/ } (续) /*file2.c*/ int mai
您可能关注的文档
- c语言课件即谭浩强.ppt
- c语言课件见第7章数组.ppt
- c语言课件见第8章函数.ppt
- c语言课件买 第1章 概述.ppt
- c语言课件噢第13章文件.ppt
- c语言课件偶第一章ppt.ppt
- c语言课件潘第三章.ppt
- c语言课件钱_第1章.ppt
- c语言课件仍第07章.ppt
- c语言课件撒第10章指针1011.ppt
- 2024年黑龙江省七台河市茄子河区东风街道招聘社区工作者真题及参考答案详解1套.docx
- 2024年辽宁省营口市西市区得胜街道招聘社区工作者真题及答案详解1套.docx
- 2024年辽宁省鞍山市千山区鞍山高新区招聘社区工作者真题及答案详解一套.docx
- 2024年辽宁省葫芦岛市龙港区双树镇招聘社区工作者真题带答案详解.docx
- 2024年黑龙江省哈尔滨市木兰县利东镇招聘社区工作者真题附答案详解.docx
- 2024年辽宁省锦州市义县白庙子乡招聘社区工作者真题及答案详解1套.docx
- 2024年黑龙江省七台河市勃利县杏树朝鲜族乡招聘社区工作者真题及答案详解一套.docx
- 2024年辽宁省沈阳市辽中县辽中镇招聘社区工作者真题及答案详解1套.docx
- 2024年辽宁省朝阳市双塔区光明街道招聘社区工作者真题及完整答案详解1套.docx
- 2024年贵州省黔西南州安龙县龙广镇招聘社区工作者真题带答案详解.docx
最近下载
- 电商代运营合同.doc VIP
- 2023年尤溪县城管协管员招聘笔试试题及答案.docx VIP
- UL2580-2022(Jun28,2022)必威体育精装版教程手册.pdf VIP
- 河北建投新能源有限公司武川大元山(小井)环境影响报告表.doc
- 如何看懂财务报表.pptx VIP
- 水务行业作业指导书SOP:污水处理站管理制度及操作规程(内有17份操作规程).docx VIP
- 2021年尤溪县城管协管员笔试试题及答案解析.docx VIP
- 广西南宁市天桃实验学校2024-2025学年七年级上学期开学分班考英语试题(含解析).docx VIP
- 2025抗菌药物培训试题(+答案).docx VIP
- 公司党建章程范本模板.docx VIP
文档评论(0)