程序的设计实践4w2c—chap5函数.pptVIP

  • 8
  • 0
  • 约1.67万字
  • 约 61页
  • 2017-04-01 发布于四川
  • 举报
程序的设计实践4w2c—chap5函数

提纲 5.1 子程序设计 5.2 函数 5.3 头文件 5.4 函数应用举例 5.5 变量作用域 5.6 变量的存储类别 5.7 内部函数和外部函数 提纲 5.1 子程序设计 5.2 函数 5.3 头文件 5.4 函数应用举例 5.5 变量作用域 5.6 变量的存储类别 5.7 内部函数和外部函数 5.3 头文件 对于一些通用的函数(如输入输出函数、数学函数等),可能在不同的程序中都会用到。 为了使用这些函数,需要在程序中说明其函数原型。 一种方式是在程序中逐个写出函数原型; double sqrt(double x) ; double fabs(double x) ; 另一种方式是将这些函数原型集中在一起,形成.h头文件,然后在程序中直接包含这些头文件。 #includemath.h 5.3 头文件 提纲 5.1 子程序设计 5.2 函数 5.3 头文件 5.4 函数应用举例 5.5 变量作用域 5.6 变量的存储类别 5.7 内部函数和外部函数 5.5 变量作用域 变量的基本属性:变量名、变量类型、变量值 变量的其他属性: 作用域(scope,程序中可引用该变量的区域) 存储类别(storage class,变量存储在哪里) 存储期( storage duration,变量存活期) 连接(linkage) 5.5 变量作用域 变量作用域即可以引用该变量的程序段。 C语言中变量可以在三种位置进行定义: 函数内部的定义部分(即任何语句之前); 函数内部的某一个复合语句内部; 所有函数之外。 变量定义的位置决定了变量的作用域。 以上三种位置的变量分别对应于: 函数作用域; 块作用域; 文件作用域。 5.5.1变量作用域-函数作用域 若变量在函数内所有语句之前定义,则该变量具有函数作用域:只有在定义变量的函数内部才能使用这些变量。 5.5.1变量作用域-函数作用域 5.5.1变量作用域-函数作用域 1.主函数main()与其它函数是平行关系。main()中定义的内部变量,也只能在主函数中使用,其它函数不能使用。同时,主函数中也不能使用其它函数中定义的内部变量。 2.形参变量也是内部变量,属于被调用函数。 3.允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。 5.5.2变量作用域-块作用域 若变量在复合语句中定义,则其具有块作用域:只在复合语句范围内才能引用该变量。 允许函数定义部分定义的变量与该函数内部的复合语句中定义的变量同名。在复合语句执行时,函数定义部分定义的变量是“隐藏的”,直到复合语句结束。建议:尽量不要这么做。系统不会混淆,并不意味着人也不会混淆! 5.5.2变量作用域-块作用域 5.5.3变量作用域-文件作用域 若变量在函数外部定义,则该变量具有文件作用域:从变量的定义位置开始,到本文件结束为止的区域可以引用该变量。 若该变量被定义成非静态外部变量,则其也能被其他文件引用(后面会讲到)。 由于变量在函数外定义,此类变量称为外部变量。由于其在文件范围内可引用,所以又称全局变量。 5.5.3变量作用域-文件作用域 (1)外部变量可以减少函数参数的使用,但会加强函数之间的数据联系,使这些函数依赖这些外部变量,因而使得这些函数的独立性降低(重用函数时必须要记得“带着”外部变量)。 【示例】 (2) 由于无法限制各函数对外部变量的访问,可能会使外部变量被某些函数非法修改,当程序出错时不好检查。 从模块化程序设计的观点来看这是不利的,因此不是非用不可时,不要使用外部变量。 (3)在同一源文件中,允许外部变量和内部变量同名。在内部变量的作用域内,外部变量将被屏蔽而不起作用。【示例】 5.5.3变量作用域-文件作用域 5.5.3变量作用域-文件作用域 (3)外部变量的作用域是从定义点到本文件结束。如果文件中定义点之前的函数需要引用这些外部变量时,需要在函数内对被引用的外部变量进行说明。外部变量说明的一般形式为: extern 数据类型 外部变量[,外部变量2……]; 【示例】 【Next】 5.5.3变量作用域-文件作用域 5.5.3变量作用域-文件作用域 例: 外部变量的定义与说明。 int CalVolumn() { extern int length, width, height;/*外部变量的说明*/ return ( length*width*height ) /*使用外部变量*/ } int length =3, width=

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档