第7章 用函数实现模块化程序设计New.ppt

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

§7.11 内部函数和外部函数 函数本质上是全局的,因为一个函数要被 另外的函数调用。 当然也可指定函数不能被其他文件调用 根据函数能否被其他源文件调用,将函数 区分为内部函数和外部函数。 §7.11.1 内部函数 如果一个函数只能被本文件中其他函数 所调用,它称为内部函数。 在定义内部函数时,在函数名和函数类型 的前面加static。如: static int fun ( int a , int b ); static 类型标识符 函数名(形参表); 内部函数又称静态函数。 使用内部函数,可以使函数只局限于所在文件,如果在不同的文件中有同名的内部函数,互不干扰。 这样,不同的人可以分别编写不同的函数,而不必担心所用函数是否会与其他文件中函数同名; 通常把只能由同一文件使用的函数和外部变量放在一个文件中,在它们前面都加上static使之局部化,其他文件不能引用。 §7.11.2 外部函数 1)在定义函数时,如果在函数首部的最左端加上关键字extern,则表示此函数是外部函数,可供其他文件调用。 例如: 函数首部可以写为: extern int fun (int a, int b) 这样,函数fun就可以为其他文件调用。 C语言规定,如果在定义函数时省略extern,则隐含为外部函数。 本书前面所用的函数都是外部函数。 2) 在需要调用此函数的文件中,用extern声明所用的函数是外部函数。 例7.20 有一个字符串,内有若干个字符,今输 入一个字符,要求程序将字符串中该字符删去 。用外部函数实现。解题思路: 分别定义3个函数用来输入字符串、删除字符、输出字符串 按题目要求把以上3个函数分别放在3个文件中。main函数在另一文件中,main函数调用以上3个函数,实现题目的要求。 file1.c(文件1) main() { extern enter-string(char str[80]); extern delete-strin g(char str[ ],char ch); extern print-string(char str[]);  /* 以上3行声明在本函数中将要调用的在 其他文件中定义的3个函数 */  在需要调用此函数的文件中,用extern声明所用的函数是外部函数 char c; char str[80]; /* 定义字符数组 str */ enter-string(str); /* 调用函数enter-string */ scanf(%c,&c); delete-string(str,c);/* 调用函数delete-string */   print-string(str);/* 调用函数print-string */ }     file2.c(文件2) #include studio.h enter-string(char str[80])/*定义外部函数enter-string*/ { gets(str);/*读入字符串str*/   }     void delete_string(char str[],char ch) { int i,j; for(i=j=0;str[i]!=\0;i++) if(str[i]!=ch) str[j++]=str[i]; str[i]=\0; } 运行情况如下: abcdefgc↙ (输入str)   c↙  (输入要删去的字符) abdefg (输出已删去指定字符的字符串) file4.c(文件4) #include stdio.h void print_string(char str[]) { printf(%s\n,str); }  file3.c(文件3) 定义外部函数delete_string 函数delete-string的作用是根据给定的字符串str和要删除的字符ch,对str作删除处理。算法是这样的: 对str数组的字符逐个检查,如果不是被删除的字符就将它存放在数组中,若是就不保留。 整个程序由4个文件组成。每个文件包含一个函数. 主函数是主控函数,除声明部分外,由4个函数调用语句组成。 其中scanf是库函数,另外3个是自己定义的函数. 函数delete-string的作用是根据给定的字符串str和要删除的字符ch,对str作删除处理。 算法是这样的: 对st

文档评论(0)

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

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

1亿VIP精品文档

相关文档