网站大量收购独家精品文档,联系QQ:2885784924

c语言之函数2.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言之函数2

* * * * * * * * * * 如果有一些变量使用频繁,则为存取变量的值要花费不少时间。为提高执行效率,C语言允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。由于对寄存器的存取速度远高于对内存的存取速度,因此这样做可以提高执行效率。这种变量叫做寄存器变量,用关键字register作声明。 例8.19使用寄存器变量 #include stdio.h void main ( ) {long fac(long); long i,n; scanf(%ld,n); for(i=1;i=n;i++) printf(%ld!=%ld\n,i,fac(i)); } long fac(long n) {register long i,f=1; /*定义寄存器变量*/ for (i=1;i=n;i++) f=f*i; return (f); } 用extern声明外部变量 外部变量是在函数的外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为程序中各个函数所引用。编译时将外部变量分配在静态存储区。 用extern来声明外部变量,以扩展外部变量的作用域。 1. 在一个文件内声明外部变量 例8.20 用extern声明外部变量,扩展它在程序文件中的作用域 #include stdio.h void main() { int max(int,int); /*外部变量声明*/ extern A,B; printf(%d\n,max(A,B)); } int A=13,B=-8; /*定义外部变量*/ int max(int x,int y) /*定义max函数 */ { int z; z=xy?x:y; return(z); } ? extern型变量使用说明: int data; main() { } func() { extern int data; } extern int data; static int num; … … … … … … … file1.c file2.c file3.c file4.c 说明为全局变量 在其他文件定义的全局变量,本文件有效 在其他文件定义的全局变量,函数内有效 全局变量,存储在数据区,只限本文件有效 由多个文件组成的程序带来的问题 外部函数和内部函数(自学) * * * * * * * * * * * * * * * * * * * * * * * * * * §8.5 函数的嵌套与递归调用 嵌套调用 main( ) 调用函数a 结束 a函数 b函数 调用函数b ? ? ? ? ? ? ? ? ? C规定:可以嵌套调用函数 例 求三个数中最大数和最小数的差值 #include stdio.h int dif(int x,int y,int z); int max(int x,int y,int z); int min(int x,int y,int z); void main() { int a,b,c,d; scanf(%d%d%d,a,b,c); d=dif(a,b,c); printf(Max-Min=%d\n,d); } int max(int x,int y,int z) { int r; r=xy?x:y; return(rz ? r : z); } int min(int x,int y,int z) { int r; r=xy?x:y; return(rz?r:z); } int dif(int x,int y,int z) { int m,n; m=max(x,y,z); n=min(x,y,x); return m-n; } main( ) 调用函数dif 输出 结束 dif函数 max函数 调用函数max 调用函数min min函数 递归调用 定义:函数直接或间接的调用自身叫函数的递归调用 f( ) 调f 调f2 调f1 f1( ) f2( ) int f(int x) { int y,z; …… z=f(y); ……. return(2*z); } int f1(int x) { int y,z; …… z=f2(y); …….

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档