第07章-函数与变量作用域.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
…… /*外部函数说明*/ extern void addition(int n1, int n2); extern void subtraction(int n1, int n2); extern void multiplication (int n1, int n2); extern void division(int n1, int n2); extern void remainder(int n1, int n2); void main() {……} 7.3.3 多个源文件的编译和连接 在软件工程项目中,采用结构化方法进行程序设计与编程,通常会产生多个源文件(例如源程序文件、数据结构定义文件等)。 那么,如何将这些源文件编译、连接成一个统一的可执行文件呢? 一般有两种方法: (1)分别编译、一并连接 C编译程序是以源文件为编译单位。 当一个程序中的函数和数据结构分放在多个源文件中时:先将各文件分别编译,再通过link命令产生一个可执行文件(.exe) 。 (2)集中编译、连接 利用编译预处理命令#include,将其它源文件包含到主函数main( )所在的源文件的开头;然后直接编译该文件即可。 例如,在[案例7.5]中的主函数main()所在的源文件case75_1.c的开头添加如下几行: …… /*将其它各源文件包含进来*/ #include case75_2.c #include case75_3.c #include case75_4.c #include case75_5.c #include case75_6.c void main( ) {……} [返回] 7.4* 内部变量与外部变量 C语言中的变量,定义位置不同,其作用域也不同,据此将变量分为内部变量和外部变量。 7.4.1 内部变量 1、内部变量——在函数内(函数说明+函数体)定义的变量。 2、作用域——只在该函数范围内有效。 所以内部变量也称“局部变量”。 例如,在[案例7.4]中,主函数main( ) 中定义的变量num就是内部变量,它仅在主函数main()中才能使用; 求阶乘的factor( )函数,函数说明中的形参变量num,以及函数体中定义的变量fact,均属内部变量,都只能在factor( )函数中使用。 说明:在不同的函数中,允许使用同名内部变量。它们代表不同的对象,互不干扰。 例如,在[案例7.4]中,主函数main()中的内部变量num,与函数factor()中的内部变量num同名。 [案例] 内部变量的应用。 void main( ) { void sum(int num); int num = 100; printf(“num_main()=%d\n”, num); /*调用前实参的值*/ sum( num ); /*调用函数*/ printf(num_main()=%d\n, num); /*调用后实参的值*/ getch(); } void sum(int num) {int i; printf(num_sum()=%d\n, num); /*改变前的形参值*/ for(i=num-1; i=1; i--) num += i; /*改变形参的值*/ printf(num_sum()=%d\n, num); /*改变后的形参值*/ } 7.4.2 外部变量 1、外部变量——在函数外部定义的变量。 2、作用域:从外部变量的定义位置开始,到本文件结束为止。 外部变量不从属于任何一个函数,可被作用域内的所有函数使用,所以外部变量又称全局变量。 [案例7.6] 设计一个函数cuboid(int length, int width, int height)(3个参数依次为长方体的长、宽、高),用于求长方体的体积及正、侧、顶三个面的面积。 算法设计要点: 函数cuboid (int length, int width, int height)本身只能返回1个值(本案例选定体积),正、侧、顶三个面的面积就只能通过外部变量来进行数据共享。 参考程序框架如下: …… long area1, area2, area3; /*定义3个外部变量,用于数据共享*/ long cuboid (int length, int width, int height); /*函数说明*/ void mai

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档